in reply to Re^3: extract text from multi-line context
in thread extract text from multi-line context

when I run the following code, Although no error , but nothing happen too, so sad!!

#!/usr/bin/perl use strict; use diagnostics; use 5.010; use Path::Tiny qw/ path /; my $raw = path("sample.vcd")->slurp_raw; my $re = qr{ \$end \$dumpoff \$end [\r\n ]+ (\#[\d]+) [\r\n ]+ \$dumpon \$end [\r\n ]+ (.*?) \#[\d]+ }sx; while( $raw =~ m/$re/g ){ my( $id, $tidy ) = ( $1, $2 ); say $1; say $2; }

Replies are listed 'Best First'.
Re^5: extract text from multi-line context
by Anonymous Monk on Aug 16, 2014 at 09:51 UTC

    ... so sad!!

    #!/usr/bin/perl -- use strict; use warnings; use Data::Dump qw/ dd /; use Path::Tiny qw/ path /; my $raw = path("sample.vcd")->slurp_raw; my $one = quotemeta '$end'; my $two = quotemeta '$dumpoff $end'; my $three = quotemeta '$dumpon $end'; my $nl = '[\r\n ]+'; my $re = qr{ $one $nl $two $nl (\#[\d]+) $nl # $1 id $three $nl (.*?) # $2 tidy \#[\d]+ }sx; dd( $re ); while( $raw =~ m/$re/g ){ my( $id, $tidy ) = ( $1, $2 ); dd( $id, $tidy ) ; } __END__ $ perl vcd-parse-1097529.pl qr/ \$end [\r\n ]+ \$dumpoff\ \$end [\r\n ]+ (\#[\d]+) [\r\n ]+ # $1 id \$dumpon\ \$end [\r\n ]+ (.*?) # $2 tidy \#[\d]+ /sx ( "#3537871350", "0&\r\n0%\r\n0\$\r\nb01 +\r\n0!\r\n0(\r\n0#\r\n1'\r\n0\"\r\nz)\r\nb1 +11 *\r\n", )