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

has following error, please help!!

*cough* thats what heppens when you edit in textbox late at night :)

for the first part simply use what you had before  \$dumpoff \$end instead of "\Q\E"

For the other part, $1 is not $i :)

And the other part, you must quote your strings,

add use diagnostics; to get more verbose explanations

Replies are listed 'Best First'.
Re^4: extract text from multi-line context
by herman4016 (Acolyte) on Aug 16, 2014 at 09:08 UTC

    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; }

      ... 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", )