这段代码哪里有问题?请大家帮助

这段代码哪里有问题?请大家帮助

#
#read the method
#
  open(INP,"<mccm.inp")|| die "can't open $!";
  @line =(<INP>);
  close INP;
  @info = ($line[0] =~ /\S+/g);
  $info[0]=~tr/A-Z/a-z/;
  $coef=$info[0]."_coef";
  $method=$info[0]."_method";
  $methoden=$info[0]."_en";
  $info[0]=~tr/a-z/A-Z/;
  $methodp=$info[0];

  $infilename=$ARGV[0];
  $outfilename=$ARGV[1];

  open(FILE1,"<$infilename")|| die "can't open $!";
#

上面部分在perl的版本为5.8.0时可以执行,但是在5.8.5时就出错,提示为open(FILE1,"<$infilename")|| die "can't open $!";这行的问题,找不到文件。
程序是如下提交的,input是输入文件,output是输出文件。
program input output

是否是不同的perl版本的语法问题,怀疑是$ARGV这部分不对,请大家指教。
把"<$infilename"的“<”去掉试试呢
去掉也没用。
低版本的perl可以和高版本的共存么?如何设置?
可以共存,在/usr/bin/perl给不同的符号连接 应该就可以切换
换成这样试试看:
open INP, "<", $infilename or die "can't open $!";

这是一个微妙的陷阱,现代 perl 提倡用“three-argument”的 open。
楼上说的有道理


QUOTE:
原帖由 happytown277 于 2008-10-21 22:48 发表
换成这样试试看:
open INP, "

还是不行,出错信息一样。我直接把输入文件名写到这个位置就没问题了,还是语法的问题,哪位能再给个建议?找不到低版本的perl安装文件。可以从别的机器拷贝过了用吗,拷过来perl和libperl.so但是还说缺东西,没办法了。
你用print $ARGV[0];看一下输出的是什么值。
我用5.10的版本试了没有问题。
哈哈,我现在就来!