我注意到@ARGV
的内容被定向到<>
命令的输入。
如果我要使用<>
从键盘获取输入,是否应该事先清除@ARGV
?这是唯一的方法吗?
例如:
@ARGV = ();
$input = <>;
(@ARGV
干扰<>
令我感到非常惊讶。这有什么意义?)
答案 0 :(得分:2)
import { StylesProvider } from "@material-ui/styles";
// ...
<Container>
<Head>
<title>My page</title>
</Head>
<ThemeProvider theme={theme}>
<StylesProvider injectFirst> // added this
{/* CssBaseline kickstart an elegant, consistent, and simple baseline to build upon. */}
<CssBaseline />
<Component {...pageProps} />
</StylesProvider>
</ThemeProvider>
</Container>
的意思是<>
。 <ARGV>
文件句柄是指ARGV
中列出的文件的串联。如果@ARGV
为空,则其作用类似于@ARGV
,这意味着从标准输入中读取。 (这样很神奇。)请参见I/O Operators in perldoc perlop
和perldoc -f readline
。
@ARGV = ('-')
旨在模拟许多标准输入(如果通过)读取的unix工具(例如<>
,cat
,sort
等)的常见行为。没有参数,否则从命令行上列出的所有文件中读取输入(也将wc
作为指令从标准输入中读取)。
如果您只想阅读-
,请执行以下操作:
STDIN
...或者,我的偏好:
my $line = <STDIN>;
(请注意,标准输入不一定指键盘。您可以轻松地将其重定向到例如文件:my $line = readline STDIN;
)