The following script get warning: "Use of uninitialized value in concatenation (.) or string at C:\tools\test.pl line 17, <DATA> line 1." But the next line of __DATA__ will be processed without any warning and get these: test1b.txt:test test1c.txt:test :test More strange thing is that when I add a line: print "$line:".$'."\n"; The warning disappeared. Anybody have some clues?
#file: test.pl #!/usr/bin/perl -w use strict; my $pattern='test'; my $output='$&'; while(<DATA>) { chomp; my $line=$_; chomp($line); $line=~/$pattern/; #print "$line:".$'."\n"; #why uncommenting this line make the fo +llowing line pass without no warning. my $result="$line:".eval($output)."\n"; print $result; } __DATA__ test1a.txt test1b.txt test1c.txt
In reply to strange thing in perl's eval function(solved)) by a369
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |