Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 小于和大于符号加在一起_Perl - Fatal编程技术网

Perl 小于和大于符号加在一起

Perl 小于和大于符号加在一起,perl,Perl,我遇到了这段代码: #!perl use strict; my %hash; while(my $line = <>) { chomp($line); $hash{$line}++; } map {print $_ ."\n"} keys %hash; #!perl 严格使用; 我的%hash; while(我的$line=){ chomp($line); $hash{$line}++; } 映射{print$\.'\n'}键%hash; 我想理解while(my$lin

我遇到了这段代码:

#!perl
use strict;
my %hash;
while(my $line = <>) {
  chomp($line);
  $hash{$line}++;
}
map {print $_ ."\n"} keys %hash;
#!perl
严格使用;
我的%hash;
while(我的$line=){
chomp($line);
$hash{$line}++;
}
映射{print$\.'\n'}键%hash;
我想理解while(my$line=)和
映射{print$。“\n”}键%hash的语句
的含义

不是正则表达式,而是您从句柄读取的方式

下面是关于的perl文档

具体而言:

null filehandle很特别:它可以用来模拟sed和awk的行为,以及任何其他接受文件名列表的Unix过滤程序,对所有文件名的每一行输入都执行相同的操作。来自的输入来自标准输入或命令行上列出的每个文件。它的工作原理如下:第一次求值时,将检查@ARGV数组,如果它为空,$ARGV[0]将设置为“-”,打开时将提供标准输入。然后将@ARGV数组作为文件名列表进行处理

因此,除非您通过
@ARGV
指定了文件名,否则执行
将从标准输入中读取。

不是正则表达式,它是来自空文件句柄的
读线

如果你写信

while ( <STDIN> ) { ... }
while(){…}
然后从
STDIN
文件句柄读取


但是,如果将
保留为空,那么Perl将从
ARGV
文件句柄中读取,该句柄按顺序给出命令行上指定的所有文件的行(ARGV
的内容),或者如果
@ARGV
为空,则从
STDIN
(通常是键盘)中读取行。

谢谢!我认为它‘不等于’!您还可以解释一下while(my$line=)
map{print$\“\n”}键%hash的语句的含义吗while语句做两件事:首先它将读取行分配给
$line
,然后如果
$line
是真的,它将执行块。通常,这用于为每行输入执行一个代码块。
map
功能不可用。不过说真的,检查一下perldocs。它们非常有用。@chandra:有些语言使用
作为“不相等”运算符。Perl不是其中之一。Perl和C一样,使用
=
表示不等式(或者,与C不同,
ne
表示字符串操作数)。最好不要在注释中进入问答对话,因为其他人无法搜索此类答案。谢谢!您还可以解释一下while(my$line=)和map{print$\“\n”}键%hash;时语句的含义吗@Stack Overflow不是一个论坛,你应该用评论来澄清问题或解决方案,而不是问新问题。如果你想问别的问题,那么就发布一个新的问题,尽管我相信,只要稍加努力,你可以自己找到答案。顺便说一下,
map{print$\.\n“}键%hash
是对
map
的滥用,对于键%hash