惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
罗磊的独立博客
F
Fortinet All Blogs
人人都是产品经理
人人都是产品经理
量子位
V
Visual Studio Blog
Blog — PlanetScale
Blog — PlanetScale
M
MIT News - Artificial intelligence
B
Blog RSS Feed
腾讯CDC
博客园_首页
aimingoo的专栏
aimingoo的专栏
博客园 - 三生石上(FineUI控件)
博客园 - Franky
S
SegmentFault 最新的问题
N
Netflix TechBlog - Medium
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
LINUX DO - 热门话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Martin Fowler
Martin Fowler
D
Docker
P
Privacy & Cybersecurity Law Blog
S
Securelist
V
V2EX
Jina AI
Jina AI
阮一峰的网络日志
阮一峰的网络日志
T
Tor Project blog
The Hacker News
The Hacker News
Microsoft Azure Blog
Microsoft Azure Blog
AWS News Blog
AWS News Blog
The GitHub Blog
The GitHub Blog
有赞技术团队
有赞技术团队
T
The Exploit Database - CXSecurity.com
Help Net Security
Help Net Security
酷 壳 – CoolShell
酷 壳 – CoolShell
Application and Cybersecurity Blog
Application and Cybersecurity Blog
博客园 - 叶小钗
Recent Announcements
Recent Announcements
Cloudbric
Cloudbric
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Latest news
Latest news
MongoDB | Blog
MongoDB | Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Recorded Future
Recorded Future
V2EX - 技术
V2EX - 技术

博客园 - xiaoyixy

WeakHashMap相关 Java常见问题[转] MONO,原来你是水中月 Lucene 搜索引擎倒排索引原理 PXE Network Boot and Install Linux over NFS server 让进程在后台运行方法汇总 用 Spreadsheet::ParseExcel处理中文excel文件 IBM terminology abstraction 亲爱的,我想念你 Perl命令行应用 深入PAM Perl Note(1) Shell技巧 GRUB awk学习 高手好习惯 Shell脚本 用户管理 re notes
Perl Note(2)
xiaoyixy · 2008-09-23 · via 博客园 - xiaoyixy

子程序中局部变量的定义有两种方法:my和local。其区别是:my定义的变量只在该子程序中存在;而local定义的变量不存在于主程序中,但存在于该子程序和该子程序调用的子程序中(在PERL4中没有my)。定义时可以给其赋值,如:

  my($scalar) = 43;

  local(@array) = (1, 2, 3);

调用方法&my_sub(@array)将把数组@array的数据拷贝到子程序中的变量@_中,当数组很大时,将会花费较多的资源和时间,而用别名传递将不做这些工作,而对该数组直接操作。形式如:

  @myarray = (1, 2, 3, 4, 5);

  &my_sub(*myarray);

  sub my_sub {

    my (*subarray) = @_;

  }

此方法类似于C语言中的传递数组的起始地址指针,但并不一样,在定义数组的别名之后,如果有同名的简单变量,则对该变量也是起作用的。

.可用\nnn(8进制)或\xnn(16进制)来表示ASCII字符,如:

  $result = "\377"; # this is the character 255,or EOF

  $result = "\xff"; # this is also 255

文件测试操作符

操作符 描述

-b 是否为块设备

-c 是否为字符设备

-d 是否为目录

-e 是否存在

-f 是否为普通文件

-g 是否设置了setgid位

-k 是否设置了sticky位

-l 是否为符号链接

-o 是否拥有该文件

-p 是否为管道

-r 是否可读

-s 是否非空

-t 是否表示终端

-u 是否设置了setuid位

-w 是否可写

-x 是否可执行

-z 是否为空文件

-A 距上次访问多长时间

-B 是否为二进制文件

-C 距上次访问文件的inode多长时间

-M 距上次修改多长时间

-O 是否只为“真正的用户”所拥有

-R 是否只有“真正的用户”可读

-S 是否为socket

-T 是否为文本文件

-W 是否只有"真正的用户"可写

-X 是否只有"真正的用户"可执行

注:“真正的用户”指登录时指定的userid,与当前进程用户ID相对,命令suid可以改变有效用户ID。

格式 值域含义

@<<< 左对齐输出

@>>> 右对齐输出

@||| 中对齐输出

@##.##   固定精度数字  

@* 多行文本

sub write_to_stdout {

  local ($savefile, $saveformat);

  $savefile = select(STDOUT);

  $saveformat = $~;

  $~ = "MYFORMAT";

  write;

  $~ = $saveformat;

  select($savefile);

}

printf值域

域值   含义

%c 单个字符

%d 十进制整数

%e 科学计数法形式的浮点数  

%f 普通形式(定点)浮点数

%g 紧缩形式浮点数

%o 八进制整数

%s 字符串

%u 无符号整数

%x 十六进制整数

指针

取址符:\

解址:$

哈希表和数组引用元素:->($的另一种形式)

文件句柄的引用:\*LOGHANDLE(用于传递参数)