@ARGV
和要求用户输入有什么区别?
$num = $ARGV[0];
和
$_ = <STDIN>;
无论哪种方式,用户都必须输入,不是吗?
它们有何不同?
答案1
它们不能满足该计划的相同需求。
程序在启动时就知道命令行参数。可以在程序执行的任何时刻通过 stdin 获取用户的输入。用户输入的内容可能取决于程序迄今为止输出的内容。
命令行参数通常是短输入,而通过 stdin 您可以获取任何内容,例如,如果用户从文件重定向标准输入。
通常,命令行参数是选项对于程序,而标准输入是数据待处理。有时,您可以使用其中之一来完成相同的操作,有时则不能。