|
目录 篇名 概述 如何得知使用者正在哪个作业系统下执行我的 perl 程式? 为什麽 exec() 不会传值回来? 如何对 键盘/萤幕/滑鼠 做些花样? 如何向使用者询问密码? 如何对序列埠做读写动作? 如何逆解加密後的密码档案? 如何启动一个背景执行的程序? 如何捕捉 控制字元/讯号? 如何更动 Unix 系统上隐式密码档 (shadow password) 的内容? 如何设定时间和日期? 如何能够针对小於一秒的时间做 sleep() 或 alarm() 的动作呢? 如何测量小於一秒的时间? 如何做 atexit() 或 setjmp()/longjmp() 的动作?(例外处理) 为何我的 sockets 程式在 System V (Solaris) 系统下不能用?「不支援本协定」这个错误讯息又是什麽意思? 如何从 Perl 里呼叫系统中独特的 C 函数? 在哪里可以找引入档来做 ioctl() 或 syscall()? 为何 setuid perl 程式会抱怨关於系统核心的问题? 如何打开对某程式既输入又输出的管道 (pipe)? 为何用 system() 却得不到一个指令的输出呢? 如何补捉外部指令的 STDERR? 为何当管道开启失败时 open() 不会传回错误讯息? 在输出值是空的情境里使用反向引号有何不对? 如何不经过 shell 处理来呼叫反向引号? 为何给了 EOF(Unix 上是 ^D,MS-DOS 上是 ^Z)後我的程式就不能从 STDIN 读取东西了呢? 如何把 shell 程式转成 perl? perl 能处理 telnet 或 ftp 这种双向互动吗? 如何在 Perl 里达到 Expect 的功能? 有没有可能将 perl 的指令列隐藏起来,以躲避像 "ps" 之类的程式? 我在 perl script 里 {更动目录,更改我的使用环境}。为何这些改变在程式执行完後就消失了呢?如何让我做的修改显露出来? 如何关闭一个程序的档案把手而不用等它完成呢? 如何 fork 出一个背景执行 (daemon) 程序? 如何使我的程式和 sh 及 csh 一起执行? 如何得知我是否正在互动模式下执行? 如何让一个缓慢的事件过时? 如何设定 CPU 使用限制? 在 Unix 系统上如何避免产生僵 程序 (zombies)? 如何使用一个 SQL 资料库? 如何让 system() 在收到 control-C 後就离开? 如何开启一个档案但不阻挡其他程序的阅读? 如何安装一个 CPAN 模组? 如何保有一份自己的 模组/程式库 目录? 如何把我的程式所在位置加入 模组/程式库 搜寻路径? 如何在执行时添加目录到自己的引入路径中? 如何从终端机一次抓进一个按键?如果用 POSIX 模组时又该怎麽做? 作者、译者与版权
--------------------------------------------------------------------------------
篇名 perlfaq8 - 系统互动(原文版 Revision: 1.21, Date: 1997/04/24 22:44:19. 中文版 $Revision: 1.1 $, $Date: 1998/03/25 03:19:06 $)
--------------------------------------------------------------------------------
概述 这部份的 Perl 常见问题集涵盖关於与作业系统互动的问题。这包括了程序间通讯 [interprocess communication (IPC)]、使用者介面的控制(键盘、萤幕以及指标 装置),以及几乎所有和资料处理无关的事情。
请阅读特别针对你所使用的作业系统下的 perl 所写的常见问题集和文件(例如, perlvms 、perlplan9,...),以取得 perl 在个别差异方面更详尽的资料。
--------------------------------------------------------------------------------
如何得知使用者正在哪个作业系统下执行我的 perl 程式? $^O 这个变数(若使用 English 模组就是 $OSTYPE)会指出你的 perl 解译器执 行档是替哪个作业系统、平台所建的。
--------------------------------------------------------------------------------
为什麽 exec() 不会传值回来? 因为这正是它所做的:它用另一个不同的程式来取代你当时所执行的。如果你的程 式需要继续跑下去(这可能正是你问此问题的原因吧?),改用 system() 。
--------------------------------------------------------------------------------
如何对 键盘/萤幕/滑鼠 做些花样? 连接/控制 键盘、萤幕和指标装置(「滑鼠」)的方法因作业系统的不同而有不 同;不妨试试下列模组:
键盘 Term::Cap perl 标准内建模组 Term::ReadKey CPAN Term::ReadLine::Gnu CPAN Term::ReadLine::Perl CPAN Term::Screen CPAN
萤幕 Term::Cap perl 标准内建模组 Curses CPAN Term::ANSIColor CPAN
滑鼠 Tk CPAN
--------------------------------------------------------------------------------
如何向使用者询问密码? (这个问题跟全球资讯网一点关系也没有。如果你要找的是跟 WWW 有关的,那就 看另一份常见问题集吧。)
|