为什么此Perl程序无法按宣传方式工作

扎克·巴格威尔(Zak Bagwell)

我必须包括一个命令行开关(-r)来对通过命令行的@ARGV数组输入的字符串列表进行反向排序。我试图找到一个阅读命令行开关的好地方。我在网上找不到任何能很好地解释这些主题的好资料。

问题1:是否有人知道清楚解释此主题的良好在线资源?

我在网上找到了这个示例,但无法正常工作。它将在命令行运行,并输出“ hello,world”,但如果输入$perl -g filename.pl,它将输出:无法识别的开关:-g(-h将显示有效选项)。

问题2为什么不起作用?它不应该用-g说“再见世界”吗?

  #! /usr/local/bin/perl -s
  use strict;
  my( $switch, $thing );
  $switch = shift;
  if( $switch and $switch eq "-g" ) {
      $thing = shift || 'world';
  } else {
      $thing = $switch || shift || 'world';
      $switch = undef if $switch;
  }
  print $switch ? 'Goodbye' : 'Hello', ", $thing\n";
口渴

严把好用;你也应该use warnings;

Perl的语法是:

   perl [ -sTtuUWX ]      [ -hv ] [ -V[:configvar] ]
        [ -cw ] [ -d[t][:debugger] ] [ -D[number/list] ]
        [ -pna ] [ -Fpattern ] [ -l[octal] ] [ -0[octal/hexadecimal] ]
        [ -Idir ] [ -m[-]module ] [ -M[-]'module...' ] [ -f ]
        [ -C [number/list] ]      [ -S ]      [ -x[dir] ]
        [ -i[extension] ]
        [ [-e|-E] 'command' ] [ -- ] [ programfile ] [ argument ]

程序文件(或可选的-)之前的任何内容都是命令行开关,它告诉perl解释器执行一些特殊的操作;用于perl程序的开关必须在程序文件名之后,因此:perl filename.pl -g,而不是perl -g filename.pl

在您的shebang线上,您有-s; 不要使用此开关。它是那些没有经受时间考验并且不能与现代Perl一起很好地使用的功能之一。在这种情况下,它甚至在代码开始之前就对您隐藏了-g参数;删除它,您应该会看到预期的结果。

而且,尽管没有充分的理由要使用-s,但您也不应该手动解析参数:使用Getopt :: Long

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么此Perl程序不能按宣传的方式工作

来自分类Dev

为什么此程序无法正常工作?

来自分类Dev

为什么此同步方法无法按预期工作?

来自分类Dev

为什么此验证代码无法按预期工作?

来自分类Dev

为什么此同步方法无法按预期工作?

来自分类Dev

为什么此软链接无法按预期工作?

来自分类Dev

为什么此命令无法按我预期的那样工作?

来自分类Dev

为什么此批处理命令无法按预期工作?

来自分类Dev

为什么此RegExp无法按预期工作?

来自分类Dev

为什么system(“ clear”)命令无法按预期方式工作?

来自分类Dev

为什么.replace方法无法按这种方式工作?

来自分类Dev

为什么此AngularJS的HelloWorld程序无法正常工作?

来自分类Dev

为什么此Shell脚本程序无法正常工作

来自分类Dev

为什么此.NET IL空检查不能按预期方式工作?

来自分类Dev

linux实用程序“ sort”如何工作?(为什么它不按我认为的方式工作?)

来自分类Dev

为什么此cronjob无法正常工作?

来自分类Dev

为什么此代码无法正常工作

来自分类Dev

为什么此代码无法正常工作?

来自分类Dev

为什么此KeyEvent无法正常工作?

来自分类Dev

为什么此onClick无法正常工作?

来自分类Dev

为什么此.innerHTML无法正常工作?

来自分类Dev

为什么此代码无法正常工作?

来自分类Dev

为什么此htaccess无法正常工作

来自分类Dev

为什么此C#方法重载无法按预期工作?

来自分类Dev

OpenGL,为什么此代码无法按我预期的那样工作?

来自分类Dev

为什么NodeJS中的此导出函数无法按我的要求工作?

来自分类Dev

OpenGL,为什么此代码无法按我预期的那样工作?

来自分类Dev

为什么by()函数无法按本博客文章中所述的方式工作

来自分类Dev

为什么WHERE子句无法在SQLite中排除行按预期方式工作?

Related 相关文章

  1. 1

    为什么此Perl程序不能按宣传的方式工作

  2. 2

    为什么此程序无法正常工作?

  3. 3

    为什么此同步方法无法按预期工作?

  4. 4

    为什么此验证代码无法按预期工作?

  5. 5

    为什么此同步方法无法按预期工作?

  6. 6

    为什么此软链接无法按预期工作?

  7. 7

    为什么此命令无法按我预期的那样工作?

  8. 8

    为什么此批处理命令无法按预期工作?

  9. 9

    为什么此RegExp无法按预期工作?

  10. 10

    为什么system(“ clear”)命令无法按预期方式工作?

  11. 11

    为什么.replace方法无法按这种方式工作?

  12. 12

    为什么此AngularJS的HelloWorld程序无法正常工作?

  13. 13

    为什么此Shell脚本程序无法正常工作

  14. 14

    为什么此.NET IL空检查不能按预期方式工作?

  15. 15

    linux实用程序“ sort”如何工作?(为什么它不按我认为的方式工作?)

  16. 16

    为什么此cronjob无法正常工作?

  17. 17

    为什么此代码无法正常工作

  18. 18

    为什么此代码无法正常工作?

  19. 19

    为什么此KeyEvent无法正常工作?

  20. 20

    为什么此onClick无法正常工作?

  21. 21

    为什么此.innerHTML无法正常工作?

  22. 22

    为什么此代码无法正常工作?

  23. 23

    为什么此htaccess无法正常工作

  24. 24

    为什么此C#方法重载无法按预期工作?

  25. 25

    OpenGL,为什么此代码无法按我预期的那样工作?

  26. 26

    为什么NodeJS中的此导出函数无法按我的要求工作?

  27. 27

    OpenGL,为什么此代码无法按我预期的那样工作?

  28. 28

    为什么by()函数无法按本博客文章中所述的方式工作

  29. 29

    为什么WHERE子句无法在SQLite中排除行按预期方式工作?

热门标签

归档