perl - Perl 中的 -p STDIN 是什么意思?
问题描述
我遇到了这段代码
if (-p STDIN) {
while (<STDIN>) { ... }
}
条件是什么-p STDIN
意思?还有其他喜欢-p
吗?
解决方案
它是一个文件测试运算符。这是perldoc的完整列表:
-r File is readable by effective uid/gid.
-w File is writable by effective uid/gid.
-x File is executable by effective uid/gid.
-o File is owned by effective uid.
-R File is readable by real uid/gid.
-W File is writable by real uid/gid.
-X File is executable by real uid/gid.
-O File is owned by real uid.
-e File exists.
-z File has zero size (is empty).
-s File has nonzero size (returns size in bytes).
-f File is a plain file.
-d File is a directory.
-l File is a symbolic link (false if symlinks aren't supported by the file system).
-p File is a named pipe (FIFO), or Filehandle is a pipe.
-S File is a socket.
-b File is a block special file.
-c File is a character special file.
-t Filehandle is opened to a tty.
-u File has setuid bit set.
-g File has setgid bit set.
-k File has sticky bit set.
-T File is an ASCII or UTF-8 text file (heuristic guess).
-B File is a "binary" file (opposite of -T).
-M Script start time minus file modification time, in days.
-A Same for access time.
-C Same for inode change time (Unix, may differ for other platforms)
因此-p
检查文件句柄(在本例中为STDIN
)是否附加到命名管道。
推荐阅读
- ruby-on-rails - Heroku 部署无法加载自定义 .bundle 文件
- react-native - 使用 React-Hooks 从手机存储中挂钩图像
- python - 在熊猫中按索引从列中的单元格值中删除一些字符?
- json - 如何在不使用波浪号的情况下仅获取 JSON 密钥?
- r - 如何预测R中的下一个事件日期
- bash - Expect->Telnet->存储和读取变量/检查目录是否存在
- google-apps-script - 检索谷歌表单编辑网址并维护现有数据结构
- css - 带有气泡样式的 CSS 浮动 div
- regex - 在 lex/flex 中标记整数与浮点数
- momentjs - 时区和日期转换问题