linux环境,运行Perl脚本+命令行参数,如何实现文本的动态输出?

linux环境,运行Perl脚本+命令行参数,如何实现文本的动态输出?

linux环境,运行Perl脚本+命令行参数,如何实现文本的动态输出?也就是说文本的输出内容由命令行参数决定;
详细描述如下:
linux环境,运行Perl脚本:  perl hello.pl wsss (wsss是带的参数)
现在要根据参数(wsss)来动态决定文本的输出;比如说原文本的内容为:
,9339,1197023655431,119702365772,S,1
我要得到这种效果怎么做?

wsss,9339,1197023655431,119702365772,S,1


[Copy to clipboard] [ - ]
CODE:
use strict;
use warnings;
print shift @ARGV;

#!/usr/bin/perl -w
use strict;
use warnings;
my %tt;
my $key;
open(FILE1,"sessioninfo.log") or die "i can't find1!\n";
open(OUT2,">result.log")or die "i can't creat the file2!\n";

my $info;
while(<FILE1>) {
  $info = $_;
  chomp($info);
  my @one_line = split(/\s*\|\s*/,$info);

  $one_line[0] = $ARGV[0];
  if($one_line[4] eq 'DS-SERVER-0001'){
    $one_line[4] = 'S';
  }
  else{
    $one_line[4] = 'F';
  }
  my $text = join(',',@one_line);
  print $text."\n";
}
问题解决了,谢谢指点;
如果你运行:/user/bin/perl weekday.pl 2
传递过程是:PERL接收到你的参数“2”,并存入数组@ARGV(@ARGV是PERL默认用来接收参数的数组,可以有多个参数,$ARGV[0]是表示接收到的第一个参数,第二个当然是$ARGV[1]),如果你只是想输出第一个参数“2”的话,一句就够了:print $ARGV[0],不用那么罗嗦;然后你用$text = $ARGV[0]将这个接收到的参数存入了$text变量,等待处理。