0

Perl 新手,希望有人能解释以下与此代码相关的问题:

$url ="some url";
open FH, "wget -q -O- $url|" or die;  
while(<FH>){  
  ...  
}  
  1. 中的第二个--O-什么意思?
  2. |in是什么$url |意思?
  3. 我尝试像这样对 FH 进行搜索:
 $url ="some url";
 open FH, "wget -q -O- $url|" or die;  
 seek(FH, 14000, 1);  

但是如果我用 呼应这个位置echo tell(FH),我得到 0,有人知道为什么我不能寻求 FH 吗?谢谢

4

3 回答 3

2

-O-参数告诉wget输出到标准输出(即您的控制台/终端),而不是文件。

open 调用中的管道是一个管道 open。文件句柄将连接到进程的输出(在这种情况下,连接到什么wget输出)。

调用这种tell类型的文件句柄并没有真正的意义。底层是流,而不是文件。tell可以在流上返回不同的东西,这取决于操作系统。

于 2011-04-25T10:36:51.983 回答
1

第二个 - in -O- 是什么意思?

man wget

这些文档不会写入相应的文件,但所有文件将连接在一起并写入文件。如果 - 用作文件,文档将被打印到标准输出,禁用链接转换。(使用 ./- 打印到一个字面上命名为 - 的文件。)


what does the | in $url | mean?

It isn't in $url, it is after it.

From the perldoc for open

if the filename ends with a '|' , the filename is interpreted as a command that pipes output to us

于 2011-04-25T10:37:55.900 回答
0

第二个-意味着您要wget输出到标准输出而不是文件。这|意味着您正在为新创建的wget进程打开一个管道,并且您可以读取它的输出。

查找对磁盘上的文件有意义,但对管道没有意义。输出是在程序执行时产生的,因此不可能“在未来跳转”。

于 2011-04-25T10:36:33.010 回答