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

perl: 输入输出

发布时间:2020-12-15 23:45:51 所属栏目:大数据 来源:网络整理
导读:输入和输出: ? STDIN操作符:用来从STDIN读入数据: 如果读到文件结尾行输入符就会返回undef. ? $line = STDIN;??? #读取下一行. chomp($line =STDIN);??? #去掉输入的一行的最后的换行符 while (STDIN) { ??? print “$_”; } foreach (STDIN) { ??? print

输入和输出:

?

<STDIN>操作符:用来从STDIN读入数据:

如果读到文件结尾行输入符就会返回undef.

?

$line = <STDIN>;??? #读取下一行.

chomp($line =<STDIN>);??? #去掉输入的一行的最后的换行符

while (<STDIN>) {

??? print “$_”;

}

foreach (<STDIN>) {

??? print “$_”;

}

?

print函数:用来将信息输出到STDOUT。

$_ = “str1 str2 …”;

print;??? #print默认会打印$_的值。

print @arr;?? #打印数组元素,但是中间没有空格。

print “@arr”;??? #打印数组元素,中间有空格。

?

printf函数:格式化输出:

%%:百分号

%c:字符

%u:十进制

%o:八进制

%x:十六进制

%s:??? 字符串

%d:十进制整数,直接舍去小数点后的整数

%g:浮点数,自动选择科学计数法还是十进制。

%e:浮点数,科学计数法

%f:浮点数,十进制

%m.nf?:m是总的位数,n是小数点后的位数

space:在非负数前面加空格。

+:在非负数前加一个加号,默认没有。

-:左对齐,默认是右对齐的。

0:右对齐用0补齐,默认是空格。

#:使前缀生效,0b/0B表示二进制,0x/0X表示十六进制,0表示八进制。

printf? (“%sn” x? @arr),@arr;??? #打印数组

?

say:输出

say会在每行结尾自动加上换行符。

say的其它语法和print一样。

?

<>钻石操作符:

从文件或标准输入读取数据

perl??? program???file1??? file2?? …

while (<>) {

??? chomp;

??? print “$_”;

}

print <>?;??? #和cat命令差不多。

print sort <>?;??? #和sort命令差不多。

?

@ARGV数组参数:

Perl的内置数组@ARGV用来存放参数,也可以在程序中指定这个数组。

@ARGV = qw# file1 file2 –options file3 #;

?

select函数:选择输出

使用select之后默认输出到STDOUT的都回输出到指定的输出句柄。

select?? FH;???? #在下一个select和指定句柄之前都是默认这个

$|? = 1;?? #立即刷新缓冲区

if? (STDERR/STDOUT/STDIN..,?? “>> filename“) {??? #相当于复制标准文件句柄。

??? …

}

如果标准文件句柄复制失败perl默认就使用原来的标准句柄。

?

die函数:处理错误

die会终止程序的运行,打印错误信息到stderr。

$!?? 特殊变量表示可读的系统错误信息。

if (! open FH,“>>filename”) {

??? die???“Can not create file description: $!”; #输出自己和系统的信息。

}

if (@ARGV < 2) {

??? die “not enough argumentsn”;??? #加上换行不会输出具体错误行号。

}

?

warn函数:处理警告,打印警告信息到stderr。

?

close关闭句柄:

如果重新打开一个句柄perl会关闭之前的句柄;

程序结束时perl会自动关闭句柄。

close??? FH;

?

read

readline

write

tell

truncate

binmode

dbmclose

dbmopen

eof

fileno

flock

format

getc

seek

sysopen

syscall

sysread

sysseek

syswrite

(编辑:李大同)

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

    推荐文章
      热点阅读