【发布时间】:2014-09-09 06:23:50
【问题描述】:
我必须包含一个命令行开关 (-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";
【问题讨论】:
-
此代码是来自 perlmonks.org 的命令行开关示例:perlmonks.org/?node_id=88222
-
切换不应转到解释器,而应转到脚本:'perl filename.pl -g'
-
我在命令行中将其键入为 $perl filename.pl -g,这次我得到的是“你好,世界”而不是“再见,世界”,我认为应该是这样。没有 'unrecognized switch:g 不过!
-
您的输入“perl -g filename.pl”是错误的。 "perl filename.pl -g" 会起作用。
-
@Fumu7:你试过了吗?它没有。
标签: perl