纯属个人学习助记笔记,难免有疏漏之处,强烈建议阅读原本《PERL实例精解》 ==================================================================================== [函数名] [函数形式] [描述] ==================================================================================== abs abs VALUE 返回其参数(默认为$_)的{jd1}值,忽略其正负符号 accept accept(NEWSOCKET, GENERICSOCKET) 接收来自正在等待连接的客户端的一个套接字连接 GENERICSOCKET是一个文件句柄, 由socket函数负责事先打开它、绑定它到地址、并监听该连接。 NEWSOCKET也是一个文件句柄, 其属性与 GENERICSOCKET 相同。 accept 函数会把 GENERICSOCKET 附加到刚刚创建的连接上 alarm alarm(SECONDS) alarm SECONDS 在 SECONDS 秒之后, 将 SIGALARM 信号发送给指定进程 atan2 atan2(X,Y) 返回范围为 <pi> 的 X/Y 的 arctangent 值 bind bind( SOCKET, NAME) 将地址 NAME 绑定到已经打开的匿名套接字 SOCKET 上 binmode binmode( FILEHANDLE ) binmode FILEHANDLE 用在区分文本模式与 “二进制“ 模式的操作系统(非UNIX)。 为以二进制模式读取数据而做准备 bless bless(REFERENCE, CLASS) bless REFERENCE 表明 reference 所引用的对象位于指定包 (CLASS) 中; 如果没有给出 CLASS 参数, 则表示在当前包中。 该函数将返回引用 caller caller(EXPR) caller EXPR caller 返回一个含有子程序调用堆栈信息的数组, 其中包含有包名、文件名、行号等。 如果 EXPR 是数字的话, 该函数将向后查找当前帧之前的第 EXPR 个堆栈帧 chdir chdir (EXPR) chdir EXPR chdir 将当前工作目录切换到 EXPR。 如果省略了 EXPR 的话, 则会切换到该用户的主目录 chmod chmod(MODE, LIST) chmod MODE, LIST 更改列表中文件的权限: {dy}个参数是权限 MODE 号(八进制); 另一个参数则是文件名的列表。 该函数将返回值修改成功的文件总数 chomp chomp(LIST) chomp(VARIABLE) chomp VARIABLE chomp 删去字符串 VARIABLE 的末字符; 或者当字符对应于 $_ 当前值时, 删去 LIST 中每一项的末字符。 与 chop(函数不同),该函数将返回山区的字符总数 chop chop(LIST) chop(VARIABLE) chop VARIABLE chop 删去字符串 VARIABLE 的末字符, 或者删去 LIST 中每一项的末字符, 并返回删去的字符值。 当没有提供参数时, 删去 $_ 的末字符 chown chown(LIST) chown LIST 更改列表中文件的拥有者和组 ID, 列表前两个元素分别是数值形式的 uid 和 gid。 列表中其余元素则是文件名。 返回更改成功的文件数目 chr chr NUMBER 返回 NUMBER 的 ASCII码值。 例如, chr(66) 将返回 B chroot chroot(FILENAME) chroot FILENAME 将当前进程的根目录更改为 FILENAME, 它是一个以 / 开头的路径名起始点。 必须以超级用户身份才能执行该函数 close close(FILEHANDLE) close FILEHANDLE 关闭 FILEHANDLE 关联的文件爱女、套接字或管道 closedir closedir(DIRHANDLE) closedir DIRHANDLE 关闭由 opendir 打开的目录结构 connect connect(SOCKET,NAME) 把一个进程连接到另一个等待 accept 调用的进程上。 其中 NAME 是压缩后的网络地址 cos cos(EXPR) cos EXPR 以弧度格式返回 EXPR 的 cosine (余弦) 值 crypt crypt(PLAINTEXT,SALT) 口令加密函数,其中 PLAINTEXT 是用户口令, SALT 则是由字符集 [a-zA-Z] 中的字符所构成的双字符字符串 dbmclose dbmclose(%ASSOC_ARRAY) dbmclose %ASSOC_ARRAY 断开 DBM 文件及其相关数组之间的绑定。 如果支持的话, 它将只适用于 NDBM, 它是新版的 DBM 格式 dbmopen dbmopen(%ASSOC_ARRAY,DBNAME,MODE) 把一个 DBM 或 NDBM 文件绑定到一个关联的数组上。 在访问数据库之前, 必须先通过 dbmopen 函数打开它。 文件 file.dir 和 file.pag 必须存在。 DBNAME 是不含扩展名 .dir 或 .pag 的文件名。 如果数据库不存在并指定了权限 MODE 的话,则创建该数据库 defined defined(EXPR) defined EXPR 如果 EXPR 是一个实际的值,则返回布尔数 1 。 如果 EXPR 不含实际值, 则返回布尔数 0 。 EXPR 可以是标量、数组、散列或子例程。 对于散列, 该函数只会检查它是否定义了值(键) delete delete $ASSOC{KEY} 从关联数组中删除指定的值。 如果删除成功, 则返回删除的值; 否则返回未定义的值。 如果删除 %ENV 中的值, 便会改变环境变量。 亦可使用 undef 函数, 后者更为快捷 die die(LIST) die LIST die 将 LIST 打印到 STDERR, 并以 $! 的值 (即系统错误消息errno) 退出。 当位于 eval 函数中时, 该函数会把 $@ 设置为错误消息, 并退出 eval 快。 如果 LIST 的值不以换行符结束的话, 则在消息后面附加当前的脚本、行号或换行符 do do BLOCK do SUBROUTINE(LIST) do EXPR do BLOCK 会返回 BLOCK 块中{zh1}一个命令的值。 do SUBROUTINE(LIST) 则会调用定义的 SUBROUTINE 子例程。 do EXPR 会将 EXPR 用作文件名, 并把该文件当作 Perl 脚本来执行。 它们主要用于导入 Perl 子例程库中的子例程 dump dump LABEL 对某个直接二进制核心镜像 (imediate binary image core) 进行转存。 undump 命令则用于解除转存, 它不是 Perl 5.6.0 的组件 each each(%ASSOC_ARRAY) each %ASSOC_ARRAY 随机返回一个二元数组, 含有关联数组 (散列) 的下一个值的键和值j eof eof(FILEHANDLE) eof() eof 如果从 FILEHANDLE 中读取到的下一个字符是文件末尾的话, 该函数就会返回 1 。 如果省略了 FILEHANDLE, 则返回上一次读取的文件末尾情况 eval eval(EXPR) eval EXPR Perl 程序会在当前 Perl 脚本的上下文语境中判断 EXPR。 该函数常用于捕获其他致命错误。 负责把语法错误、运行时错误和来自 die 函数的错误消息返回给变量 $@ 。 如果没有错误的话, 则将变量 $@ 设置为 NULL 。 其返回值是上一次求值的表达式结果值 exec exec(LIST) exec LIST 在当前程序的上下文语境中执行系统命令 LIST。 该函数不会返回任何内容。 如果 LIST 是一个标量, 则查找 shell 元字符, 并将其传递给 /bin/sh 。 否则,将参数传递给 C 函数调用 execvp 。 该函数不会xx缓冲区。 exists exists EXPR 如果关联数组中存在指定的键, 则返回 TRUE, 即使没有与之对应的值也是如此 exit exit(INTEGER) exit INTEGER 以状态值 INTEGER 退出脚本。 如果省略 INTEGER 的话, 则以 0 退出, 也就是说程序以成功状态退出。 非零状态意味着程序出错 exp exp(EXPR) exp EXPR 指数函数。 返回 e 的 EXPR 次幂值 fcntl fcntl(FILEHANDLE, FUNCTION, SCALAR) 修改所打开文件的属性。 需要用到 sys/cntl.ph 。 FUNCTION 可以重复现有的文件描述符, 获取或设置文件描述符标记, 获取或设置文件爱女状态标记, 获取或设置异步 I/O 所有权, 获取或设置记录锁。 SCALAR 则是一个整数型的标记 fileno fileno(FILEHANDLE) fileno FILEHANDLE 返回整数形式的 FILEHANDLE 文件描述符。 该描述符的值 0、1、2 分别表示 STDIN、STDOUT、STDERR。 如果再文件关闭后再次打开的话, 则该函数在 Perl 脚本中就可能是不可靠的 flock flock(FILEHANDLE, OPERATION) 在文件上加上或者取消锁。 OPERATION 负责规定对文件的加锁、共享锁、独占锁或非独占锁的操作。 删除某个文件的 OPERATION 则是 unlock fork 创建一个新的(子)进程。 子进程是父进程的一个副本。 子进程和父进程都会继续执行 fork 后面的指令。 该函数将把 0 返回给子进程, 并将子进程的 pid 返回给父进程 format format NAME = picture line value list ... 负责声明一组形象 (picture) 行, 用以描述相应值的布局。 write 函数将使用规定的格式把输出发送到 NAME 代表的命名文件句柄上。 如果省略了 NAME, 默认的文件爱女句柄则为 STDOUT formline formline PICTURE, LIST format 函数用到的内部函数, 负责格式化形象中对应值的列表。 读者也可以从程序中直接调用该函数 getc getc(FILEHANDLE) getc FILEHANDLE getc 从关联到 FILEHANDLE 上的输入中返回下一个字符。 如果碰到 EOF, 则返回 NULL。 如果省略了 FILEHANDLE 的话, 则从 STDIN 中读取 getgrent getgrent setgrent endgrent 反复遍历 /etc/group 文件, 并从中返回各个列表项, 包括组名、口令、组 ID (gid) 和成员 getgrgid getgrgid(GID) 根据组的编号返回组文件列表项 getgrnam getgrnam(NAME) 根据组名返回组文件列表项 gethostbyaddr gethostbyaddr(ADDRESS,AF_INET) 将网络地址翻译为对应的名称和替换地址。 该函数会返回主机名、别名、地址类型、长度以及末包装的原始地址。 AF_INET 的值始终是 2 gethostbyname gethostbyname(HOSTNAME) 将主机名翻译成 /etc/hosts 中的列表项, 包括主机名、别名和地址。 在标量上下文语境中, 该函数将只返回主机的地址 gethostent gethostent gethostent(STAYOPEN) endhostent 反复遍历 /etc/hosts 文件, 并从中返回各个列表项, 包括名称、别名、地址类型、长度和替换地址。 该函数负责从网络数据库 /etc/hosts 中返回列表内容 getlogin getlogin 如果存在 /etc/utmp 文件的话, 从该文件中返回当前的登录情况。 如果 getlogin 不起作用, 请尝试: $loginname = getlogin || (getpwuid($<))[0] || die "Not a user here" getnetbyaddr getnetbyaddr(ADDR, ADDRESSTYPE) 将网络地址翻译成其对应的网络名。 该函数能从网络数据库 /etc/networks 中返回列表内容。 再标量型上下文语境中, 该函数将只返回网络名 getnetbyname getnetbyname(NAME) 将网络名翻译成其对应的网络地址。 该函数能从网络数据库 /etc/networks 中返回列表内容。 在标量型上下文语境中, 该函数将只返回网络地址 getnetent getnetent setnetent(STAYOPEN) endnetent 反复遍历 /etc/networks 文件, 并从中返回各个列表项。 该函数负责从网络数据库 /etc/networks 中返回列表内容。 再标量上下文语境中, 该函数将只返回网络地址 getpeername getpeername(SOCKET) 返回套接字连接的另一端所包装的 sockaddr 地址 getpgrp getpgrp(PID) getpgrp PID 返回给定 PID 对应的当前进程组 (PID 0 是当前进程)。 如果没有 EXPR 参数的话, 该函数将返回当前进程所在的进程组 getppid getppid 返回父进程的 pid。 如果返回值为 1, 就表明是 init 进程的 pid。 init 会接纳那些没有父进程的进程 getprioity getprioity(WHICH, WHO) 返回 WHICH 的值, 即当前进程、进程组或用户的优先权 (nice) 值。 如果 WHO 的值为 0, 则表示当前的进程、进程组或用户 getprotobyname getprotobyname(NAME) 将协议名 NAME 翻译成对应的协议号, 并返回一个包含协议名、别名和协议号的列表。 该函数将从网络协议数据库 /etc/protocols 中返回一行内容 getprotobynumber getprotobynumber(NUMBER) 将协议号 NUMBER 翻译成对应的协议名, 并返回一个包含协议名、别名和协议号的列表。 该函数将从网络协议数据库 /etc/protocols 中返回一行内容 getprotoent getprotoent setprotoent(STAYOPEN) endprotoent 反复遍历 /etc/protocols 文件, 并从中返回各个列表项, 包括协议名、别名和协议号。 如果 STAYOPEN 参数值非零, 则在随后的调用期间不关闭数据库。 函数 endprotoent 负责关闭该文件。 在标量型上下文语境中, 该函数将只返回协议名 getpwent getpwent setpwent endpwent 反复遍历 /etc/passwd 文件, 并从中返回各个列表项, 包括用户名、口令、uid、gid、磁盘配额、注释、gcos字段、主目录和启动 shell 等。 函数 endpwent 负责关闭该文件。 在标量型上下文语境中, 该函数将只返回用户名 getpwnam getpwnam(NAME) 将用户名转译为 /etc/passwd 文件中的对应项。 该函数返回的列表内容包括用户名、口令、uid、gid、磁盘配额、注释、gcos 字段、主目录和启动 shell 等。 在标量型上下文语境中, 该函数将只返回用户 ID getpwuid getpwuid(UID) 将用户 ID 转译为 /etc/passwd 文件中的对应项。 该函数返回的列表内容包括用户名、口令、uid、gid、磁盘配额、注释、gcos字段、主目录和启动 shell 等。 在标量型上下文语境中, 该函数将只返回用户名 getservbyname getservbyname(NAME,PROTOCOL) 从 /etc/services 数据库中, 将端口名转译为对应的端口号,并返回一个含有服务名、别名、服务端口和所需协议的数组。 在标量型上下文语境中, 该函数将只返回服务的端口号 getservbyport getservbyport(PORT_NUMBER,PROTOCOL) 从 /etc/services 数据库中, 将端口号转译为对应的标量型端口名, 并返回一个含有服务名、别名、服务端口和所需协议的数组。 在标量型上下文语境中, 该函数将只返回服务的端口名 getservent getservent setservent(STAYOPEN) endservent 反复遍历 /etc/services 文件, 并从中返回服务名、别名、服务端口和所需协议。如果 STAYOPEN 参数值非零, 则在随后的调用期间将不关闭数据库。 endservent 负责关闭该文件。 在标量型上下文语境中, 该函数将只返回服务的端口名 getsockname getsockname(SOCKET) 返回 SOCKET 连接本地端的 sockaddr 地址 getsockopt getsockopt(SOCKET,LEVEL,OPTNAME) 返回请求选项 OPTNAME, 该选项将在指定协议 LEVEL 上关联到 SOCKET glob glob EXPR 像 shell 一样对 EXPR 执行文件名扩展。 若省略了 EXPR, 则默认会使用 $_ 。也可使用内部运算符<*> gmtime gmtime(EXPR) gmtime EXPR 将 time 函数得到的结果转换为一个含有格林威治时间值的 9 元数组, 其中包含秒、分、时、日、月、年、周日、年日、等信息, 如果是夏令时的话, 其中还会出现 1 goto goto LABEL goto EXPR goto &NAME 将程序转到 LABEL 处并继续执行。 该函数不能 goto 到任何需要初始化的结构内, 譬如 foreach 循环的子例程。 goto 不会返回任何值。 格式 goto &NAME 将当前运行的子例程替换为针对 NAME 的调用(常用于 AUTOLOAD 子例程中) grep grep(EXPR,LIST) grep BLOCK,LIST 把 LIST 中与 EXPR 匹配的任意元素返回给新数组。 该函数将返回一个标量, 即匹配成功的项目总数 hex hex(EXPR) hex EXPR 将十六进制值 EXPR 返回为相应的十六进制字符串。 如果没有 EXPR 的话, 则默认使用 $_ import import CLASSNAME LIST import CLASSNAME 这不是内建函数, 而是模块规定的类方法, 负责通过 use 函数将名字导出到其他模块中去 index index(STR,SUBSTR,POSITION) index(STR,SUBSTR) 返回 STR 中 SUBSTR 的{dy}个匹配值的位置。 POSITION 表示该串内从 0 开始计算的子串起始位置 int int(EXPR) int EXPR 返回 EXPR 的整数部分。 如果没有提供 EXPR 的话, 则默认使用 $_ ioctl ioctl(FILEHANDLE,FUNCTION,SCALAR) 用于控制 I/O 操作, 主要是负责结束 I/O。 要求用到 sys/ioctl.ph 。 此处的 FUNCTION 是一个 I/O 请求。 SCALAR 将根据该请求进行读或者写。 join join(EXPR,LIST) 将 LIST 中各个串连接在一起, 返回单个串。 其分段分隔符由定界符 EXPR 规定 keys keys(%ASSOC_ARRAY) keys %ASSOC_ARRAY 返回一个由关联数组中所有的键所组成的数组 kill kill(SIGNAL,PROCCESS_LIST) kill PROCESS_LIST 把信号 SIGNAL 发送到列表中的各个进程。 SIGNAL 可以是数字或者信号名(信号名必须位于引号中)。 如果 SIGNAL 为负, 则表示取消该进程 last last LABEL last last命令兼容于 C 里面的 break 命令。 它负责退出最内层循环。 如果带有循环标记 last LABEL 的话, 则能退出整个循环 lc lc EXPR 返回 EXPR 的小写形式。 等效于 \L\E 转义序列 lcfirst lcfirst EXPR 返回首字母小写的 EXPR。 等效于 \l\E 转义序列 length length(EXPR) length EXPR 返回标量 EXPR 的字符串长度。 如果省略了 EXPR 的话, 则默认会返回 $_ 的长度。 该函数不能用于获取数组或关联数组的大小 link link(OLDFILE,NEWFILE) 创建一个硬链接。 NEWFILE 将成为 OLDFILE 的另一个名称 listen listen(SOCKET,QUEUESIZE) 在 SOCKET 套接字上坚挺连接。 QUEUESIZE 规定了等待连接的{zd0}进程数 local local(LIST) 针对代码块、子例程或 eval 对 LIST 中的变量进行本地化 localtime localtime(EXPR) localtime EXPR 将 time 函数返回的时间值转换为一个含有本地时区的 9 元素数组。 该数组含有: 秒 分 时 日 月份编号 ( 0 表示 1 月) 自 1900 年开始的年份 周日 ( 0 表示星期天) 年日 ( 0 表示 1 月 1 日) isdst (如果使用夏令时的话, 该值为真) lock lock THING 在变量、子例程或 THING 引用的对象上面加锁, 直到锁超出其作用域为止。 如果启用它, 则只能用在线程上 log log(EXPR) log EXPR 返回 EXPR 的对数值 (以 e 为底数)。 如果省略 EXPR 的话, 则默认求 ln($_) lstat lstat(FILEHANDLE) lstat FILEHANDLE lstat(EXPR) 返回一个由符号链接上文件统计值所构成的 14 元素数组, 而不是符号链接指向的文件本身。 该数组含有: 设备 文件模式 指向文件的硬链接数目 拥有者的用户 ID 拥有者的组 ID 原始设备 文件大小 文件上一次访问时间 文件上一次修改时间 文件上一次状态改变的时间 文件系统实际分配的 I/O {sx}块数大小 m /PATTERN/ m/PATTERN/ m 是一个匹配运算符, 负责将 PATTERN 解释为正则表达式, 用在需要替换界定符的时候, 譬如 m!PATTERN! map map(BLOCK,LIST) map(EXPR,LIST) 对于 LIST 中的每一个元素, 计算其 BLOCK 或 EXPR 的值, 并返回含有计算结果的列表值。 下面的示例将把数字列表转译为字符: @chars = map char, @numbers mkdir mkdir(NAME,MODE) 使用 MODE 权限 (八进制) 创建目录 NAME msgctl msgctl(MSGID,CMD,FLAGS) msgctl 系统调用, 用于针对消息队列的操作。 它会产生较为特殊的返回码。 要求用到库文件 ipc.ph 和 msg.ph 。 msgget msgget(KEY, FLAGS) 调用 msgget 系统调用。返回消息队列 ID 号; 如果尚未定义的话, 则返回错误信息 msgrcv msgrcv(MSGID,VAR,MSG_SIZE,TYPE,FLAGS) 调用 msgrcv 系统调用。 从消息队列中检索消息, 并将它存储在 VAR 中。 MSG_SIZE 是消息队列的{zd0}容量, TYPE 则表示消息的类型 msgsnd msgsnd(ID,MSG,FLAGS) 调用 msgsnd 系统调用。 把消息 MSG 发送到消息队列中。 MSG 必须以消息类型开头。 用户可使用 pack 函数来创建消息 my my TYPE EXPR;ATTRIBUTES my EXPR;ATTRIBUTES my TYPE EXPR my EXPR 使用 my 函数声明的变量将成为专有变量, 即它们将只能存储在最内层的包含快、子例程、eval 或文件中。 只有简单标量、完整数组和散列才能使用 my 声明。 这里的 TYPE 和 ATTRIBUTES 参数都是可选的 new new CLASSNAME LIST new LASSNAME 这不是内建函数, 而是一个构造函数方法。 它是由 CLASSNAME 模板定义的, 负责创建 CLASSNAME 类型的对象。 其创建规则取自 C++ next next LABEL next 开始最内层循环, 或者开始标记为 LABEL 的循环。 等效于 C 语言中的 continue 函数 no no Module LIST 如果已经使用 use 导入了编译指示 (progma) 或模块的话, 则可使用 no 函数表明不再使用它们 not not EXPR 逻辑否定 EXPR 的真值 oct oct(EXPR) oct EXPR oct 返回八进制字符串 EXPR 的十进制值。 如果 EXPR 含有前导零的话, 则将 EXPR 解释为十六进制。 如果没有提供 EXPR 的话, 则默认转换 $_ open open(FILEHANDLE,EXPR) open(FILEHANDLE) open FILEHANDLE 打开实际文件 EXPR, 并将它附加给文件句柄 FILEHANDLE 。如果没有提供 EXPR 的话,则必须把与 FILEHANDLE 同名的标量值赋予该文件名 读 "FILEHANDLE“ 写 ">FILEHANDLE" 读/写 "+>FILEHANDLE” 追加 ">>FILEHANDLE" 导出 “| UNIX Command" 导入 ”UNIX Command |" opendir opendir(DIRHANDLE,EXPR) 打开名叫 EXPR 的目录结构, 并在负责检查该结构的函数中把它附加给 DIRHANDLE 句柄 ord ord(EXPR) ord 返回 EXPR 中{dy}个字符所对应的无符号 ASCII 数值 our our TYPE EXPR: ATTRIBUTES our EXPR: ATTRIBUTES our TYPE EXPR our EXPR 声明一个或多个在块、 文件或 eval 中全局有效的变量。 该函数类似于 my 或 global, 但是它不会创建新的专用变量。 当打开 strict 指示并且需要全局变量时, 便可使用该函数 pack $packed = pack(TEMPLATE,LIST) 负责将列表值包装成一个二进制结构, 并返回该结构。 其中 TEMPLATE 是带引号的含有数值或类型的字符串。 TEMPLATE 可以是: a ASCII 串, 填充 null A ASCII 串, 填充空格 b 比特串, 从低到高的顺序 B 比特串, 从高到底的顺序 h 十六进制串, 低 4 位在前 H 十六进制串, 高 4 位在前 c 有符号的字符值 C 无符号的字符值 s 有符号的短整型值 S 无符号的短整型值 i 有符号的整数值 I 无符号的整数值 l 有符号的长整型值 L 无符号的长整型值 n 以 “network” 顺序出现的短整型值 N 以 “network” 顺序出现的长整型值 f 本地格式的单精度浮点数 d 本地格式的双精度浮点数 p 指向字符串的指针 x 空字节 X 备份字节 @ 以空值填充的{jd1}精度 u uuencode 编码字符串 packeage package NAMESPACE 把包声明为 NAMESPACE, 并创建单独的命名空间 (符号表)。 NAMESPACE 属于其他的最内层代码块、子例程、eval 或文件。 如果包声明位于同一层的话, 则新的声明将覆盖旧的声明 pipe pipe(READHANDLE,WRITEHANDLE) 打开管道读或者写, 一般都在 fork 后调用 pop pop(ARRAY) pop ARRAY 取出数组中的一个元素。 数组中的元素将减少一个 pos pos(SCALAR) pos SCALAR 返回在 SCALAR 中搜索上一个匹配项之后字符的偏移量, 即下一次搜索的起始位置。 其偏移量从 0 起算。 如果 $scalar 赋值为 "hello", 并且搜索模式为 %scalar=~m/l/g 的话, pos 函数就会返回找到{dy}个 1 之后的字符位置, 即 3 print(FILEHANDLE LIST) print(LIST) print FILEHANDLE LIST print LIST 将字符串或以逗号隔开的字符串列表打印到 FILEHANDLE 上。 这里可以打印到用户选择的 FILEHANDLE, 也可打印到默认的 STDOUT。 如果调用成功, 该函数会返回 1, 否则就返回 0 printf printf(FILEHANDLE FORMAT, LIST) printf(FORMAT,LIST) 把格式化之后的字符串打印到 FILEHANDLE 上。 如果省略了 FILEHANDLE 的话, 则打印到单签已经选定的文件句柄上。 其默认句柄为 STDOUT 。 该函数类似于 C 语言中的 printf,但是它不支持 * |