综合的不会,大家不要怕啊:)

jinandsun 2001-12-01 11:42:22
1=》local这个函数我不是很明白~
{
local $ENV{"PATH"}=
"c:\\msaev\\bin;c:\\winnt;c:\\winnt\\system32;
system("nmake fre bedrock >output")'
}这里的LOCAL起什么作用?

2=》把进程用做文件操作符

可以创建一个进程文件操作符,从进程获取输出或输入
open(FIND),"|find $pattern";
print FIND @filedata;
close(FIND);
这里我有些困惑的东西
这里的向等待输入的命令,这里的命令是指find,他有等待输入吗?
用PRINT把@filedata写进文件操作符FIND后又对find这个命令有什么影响?他不是在当前的目录下找$pattern吗?那输入的@filedata用来做什么?
3=》
@hosts='net view ';
foreach (@hosts){
next unless m#\\\\#;
chomp;# 这个不是曲调一个字符的最后一个字符吗?
s/^(\s+0.*/$1/; #这个在程序中起什么作用,匹配什么?
}
print join("\n",sort @sorted);

4=》opendir (DOT, ".")
这里的"."代表什么?



...全文
54 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinandsun 2001-12-13
  • 打赏
  • 举报
回复
用PRINT把@filedata写进文件操作符FIND后又对find这个命令有什么影响?他不是在当前的目录下找$pattern吗

我的意思是说就是find命令是在等待print FIND @filedata;写进数据后在对@filedata里的$pattern的find吗?然后存到FIND文件操作符的吗?
我不是很明白~
谢谢你上面的解答~
yakai 2001-12-03
  • 打赏
  • 举报
回复
1.local等于是将一个全局变量的值暂时替换了,在该语句块如果调用其它子程序(当然该子程序在语句块之外了),该全局变量仍是替换过了的值,只到包含local的该语句块结束,而my是一个词法作用域,C语言或其它语言定义局部变量一般都是定义的词法作用域,即超过了该语句块之后,该变量就不存在了,现在倾向用词法作用域。因为如果你用local,则在另一个函数中,你将很难确定一个全局变量的值,因为你不知道该函数在那里被调用过了,变量如果被local了,它的值也就不知道变成了多少
2.进程应当是在等待的,就像dos中一个命令执行了,确还没有出现DOS提示符一样,close(FIND);后当然就不会等待了
3.chomp应该是去掉标量或数组里每一个标量的最后一个回车符用的,如果不带参数,就是对$_标
量操作,如果末尾没有回车就不去掉字符了,它同chop有些区别
s/^(\s+0.*/$1/; 是对$_进行替换,应该缺了一个')'
4."."表示你的可执行脚本执行时的当前路径,
beckheng 2001-12-01
  • 打赏
  • 举报
回复
1.
local是将变量的值暂时改变,当退出这个语句块的时候,$EVN{'PATH'}将恢复为原来的值!

2,204

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 CGI
社区管理员
  • CGI社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧