加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl获取用户输入

发布时间:2020-12-15 21:05:23 所属栏目:大数据 来源:网络整理
导读:1、获取用户输入: 1)“行输入”操作符STDIN:默认是从标准输入读进一行文字(直到换行符为止) STDIN返回的字符串,一般在最后都会跟有一个换行符。 eg: $line=STDIN; if($line eq "n"){ ??? print "that is just a blank linen"; }else{ ??? print "that

1、获取用户输入:
1)“行输入”操作符<STDIN>:默认是从标准输入读进一行文字(直到换行符为止)
<STDIN>返回的字符串,一般在最后都会跟有一个换行符。
eg:
$line=<STDIN>;
if($line eq "n"){
??? print "that is just a blank linen";
}else{
??? print "that line of input was:$line";??
}

2)chomp 操作符
功能:移除末尾换行符;
????? 如果末尾有两个以上的换行符,chomp也仅仅删除一个;
????? 如果结尾处没有换行符,什么也不做,直接返回零。
返回值:实际移除的字符数
=====================================
$fred ="hellon";
my $p=chomp($fred);
print "======$p====";
print "======$fred====";

E:perl>perl p.pl
======1==========hello====
E:perl>
=====================================

2、从钻石操作符输入:
钻石操作符:<>
功能:它是 ”行输入“ 操作符(<STDIN>) 的特例,它并不专门从键盘那获取输入,而还可以从

用户指定的位置读取(这个位置可能是某个文件,也可能是个其他的设备)。
=================================================================
程序1:
while (<>) {?
?if ($_=~/stop/i) {
??? last;
?} else {
??? print "It was $_";
?}
结果1:
E:perl>perl p.pl
ccc
It was ccc
iii
It was iii
stop

E:perl>
}
当直接运行这个程序时,会每次从标准输入读取一行输入,然后输出。标准输入相当于文件名 是

'-',如下:
结果2:
E:perl>perl p.pl -
ccc
It was ccc
iii
It was iii
stop

结果3:

E:perl>perl p.pl pp.pl
It was -------
It was pppppp
E:perl>

可以在程序名后给出一个文件名作为命令行参数,程序会从文件中读取内容,每次读取一行,直

到读完为止。其中“-------”和“pppppp”是文件pp.pl中的字符串。
===============================================================

3、调用参数
??? 严格来说,钻石操作符并不好去检查调用参数,它靠的是@ARGV数组。这个数组是由perl解释

器事先建立的特殊数组,其内容就是调用参数所组成的列表。
??? 钻石操作符如何绝对使用那些文件名?方法如下:它会查找@ARGV,如果它找到的是空列表,

就会改用标准输入流;否则,就会使用@ARGV里的文件列表。这表示程序开始运行之后,只要尚
未使用钻石操作符,就都可以对@ARGV动点手脚。eg:
===================================================================
@ARGV = qw / larry moe curly /; #larry moe curly要为实际存在的文件名
while (<>) {
chomp;
print "It was $_n ";
}

结果:
E:perl>perl p.pl hh dd cc??? ---后面随意跟哪些文件名,都不会改变结果了。
It was -------
?It was pppppp
?It was -------
?It was pppppp
?It was -------
?It was pppppp

E:perl>perl p.pl hh
It was -------
?It was pppppp
?It was -------
?It was pppppp
?It was -------
?It was pppppp

E:perl> ===================================================================

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读