Hey zee3b, I figured I'd respond to your PM here so I'd have more room.
Hey, thanks a lot for the help. That really worked and was exactly what I was looking for. When you get a few mins, can you please explain how the code works for my understanding. Thanks!
# Read through file/data one line at a time.
while (<DATA>) {
# Remove newline from end of line (actually not necessary for your
+ input).
chomp;
# If a line ends with '{', use a regular expression (REGEX) to cap
+ture
# the relevant portion by having that portion surrounded by parent
+heses.
# Push the captured string (contained within the variable '$1', si
+nce it
# is the first captured string) onto the end of the array '@curren
+t command'.
# This REGEX matches:
# the beginning of the line: ^
# 0 or more spaces: \s*
# 1 or more of anything (captured because it is in parentheses
+): (.+)
# 1 space followed by 1 {: \s{
# the end of the line: $
push @current_command, $1 if /^\s*(.+)\s{$/;
# If a line ends with ';', use a REGEX to capture the relevant por
+tion,
# then print out the contents of the array followed by the string
+you
# just captured and assigned to '$last_term'.
if (/^\s*(.+);$/) {
my $last_term = $1;
say "set @current_command $last_term";
}
# If a line ends with '}', that means we are moving up a level, so
+ you
# remove the last element of the array '@current_command'.
pop @current_command if /}$/;
}
|