http://www.perlmonks.org?node_id=1018447


in reply to needed help

As toolic said, you should use a module for this if there is one available. However, if not, I threw this together. It works for this set, but you may need to customize it depending on how (ir)regular your input is:
#!/usr/bin/env perl use strict; use warnings; use feature 'say'; say "Code:"; my @current_command; while (<DATA>) { chomp; push @current_command, $1 if /^\s*(.+)\s{$/; if (/^\s*(.+);$/) { my $last_term = $1; say "set @current_command $last_term"; } pop @current_command if /}$/; } __DATA__ deviceconfig { system { snmp-setting { snmp-system { location "VA"; contact US; send-event-specific-traps yes; } access-setting { version { ll1 { snmp-community-string trap; } } } }

Output:

Code: set deviceconfig system snmp-setting snmp-system location "VA" set deviceconfig system snmp-setting snmp-system contact US set deviceconfig system snmp-setting snmp-system send-event-specific-t +raps yes set deviceconfig system snmp-setting access-setting version ll1 snmp-c +ommunity-string trap