我无法理解eval或者我不理解eq vs ==.
我有这个简短的Perl脚本:
我有这个简短的Perl脚本:
[red@tools-dev1 ~]$cat so.pl #!/usr/local/bin/perl -w use strict; while(<DATA>) { chomp; my ($arg1,$arg2,$op ) = split /,/; if ( $op eq '=' ) { $op = 'eq'; } my $cmd = "$arg1 $op $arg2"; print "[$cmd]\n"; my $rc = eval $cmd || 0; print "rc is [$rc]\n"; } __DATA__ cat,cat,=
当我执行它时,我得到:
[red@tools-dev1 ~]$./so.pl [cat eq cat] rc is [0]
有人会认为你会……
[cat eq cat] rc is [1]
…因为“猫”等于“猫”,对吧?