用于unix命令的Perl用户输入

时间:2016-06-02 19:54:39

标签: perl

有人可以帮助我解决我在这里做错了什么,一直在摸不着头脑。我只是对irssi脚本做了一些小改动,我不太了解perl。

            $selectedname = <STDIN>;
            $Nameslist = `grep -i -w '$selectedname'~/file`;

它正常工作我遇到的问题是看起来变量未正确插入。例如,如果我在命令行中使用单词test键入相同的命令,则会显示3行。但是,如果我在这个脚本中使用相同的单词,那么它就会变空。

我知道它工作正常,因为我可以做*作为输入,它会显示整个文件。它只是不使用输入的字符串。

任何帮助都会非常感激,这真的让我很难过。

1 个答案:

答案 0 :(得分:1)

实际上当你使用<STDIN>时,会出现一个新的行字符。所以你需要删除换行符。您可以使用 chomp 删除换行符

<强>代码:

   $selectedname = <STDIN>;
   chomp($selectedname);
   $Nameslist = `grep -i -w '$selectedname'~/file`;