LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2191|回复: 14

perl的问题???

[复制链接]
发表于 2003-5-20 13:35:32 | 显示全部楼层 |阅读模式
  #!/usr/bin/perl
  $password="wsxy"; #密码为wsxy
  printf "请问您的姓名?";
  $name=<STDIN>;
  chop($name);
  if ($name eq "zmd"){
   printf "欢迎zmd进入本系统!\n";
  } else {
   printf "你好, $name!\n 请输入密码:";
   $guess=<STDIN>;
   chop($guess);
   while ($guess ne $password){
   printf "密码错误,请重新输入:";
   $guess=<STDIN>;
   chop($guess);
   }
  }

请问<STDIN>是什么来的???

while ($guess ne $password)   的ne是什么含义来的啊??

刚学习perl,很多不懂,希望大家可以帮帮忙,谢谢
发表于 2003-5-20 13:47:47 | 显示全部楼层
我也刚学。
<STDIN>是标准输入。
ne的意思是“不等于”。
还有,chop换成chomp好一点,这是因为<STDIN>来的输入包含最后的换行符,所以在$guess=<STDIN>之后要把换行符删掉,chop是删除最后一个字符,chomp是删除最后的换行符,如果不是换行符就不删除,用chomp好一点。
发表于 2003-5-20 18:42:18 | 显示全部楼层
<>
读文件的意思
就是从stdin中读入

ne 用于字符串比较
 楼主| 发表于 2003-5-23 16:32:22 | 显示全部楼层
perl是不是不需要定义数据类型的啊??
发表于 2003-5-23 18:54:42 | 显示全部楼层
不需要
是即时定义的
但是有一种情况
就是在for()等
在这里面要使用一个新变蚯的话必须加 define
发表于 2003-5-23 20:57:55 | 显示全部楼层
我想问楼上那位,这段script能在REDHAT下运行吗?比如说,你那段SCRIPT的
文件名叫 test.pl,然后把它变成可执行by:
$chmod u+x test.pl
然后就可执行了吗?
$test.pl

在我的REDHAT 下最上面的 那一行shebang 好像不行,我得这样才行:
$perl -w test.pl

但我在学校的SUN机器上就行,是不是在Linux 下需要配置一下,有谁知道怎么配置吗

nan
发表于 2003-5-23 21:17:16 | 显示全部楼层
有这一行就应该可以呀?
#!/usr/bin/perl -w
发表于 2003-5-25 15:49:26 | 显示全部楼层
Sorry, I put ! before #, works now, thanks!

nan
发表于 2003-5-26 20:05:09 | 显示全部楼层
把你存放有perl脚本文件的路径加到$PATH中,赋予执行权限后就可以,
$filename.pl
直接运行啦~~在/etc/profile中加入:
export PATH=${PATH}:~/perldirname
 楼主| 发表于 2003-5-31 12:14:24 | 显示全部楼层
#!/usr/bin/perl
use IO::Socket;
my $socket = new IO::Socket::INET ( 'Localhost'=>'127.0.0.1' , 'LocalPort'=>80 , 'Listen'=>1 , 'Proto'=>'tcp' , 'Reuse'=>1 );
die "Reason: $!" unless $socket;
while (my $new_socket = $socket->accept() ) {
while (my $buffer=<$new_socket>) {
if ($buffer) {exit if ($buffer=~m/exit/);
$res_msg=`$buffer`;$res_msg="error command!!\n" if (!$res_msg);
print $new_socket $res_msg."\n";]}


这段代码讲的是什么啊 ?干什么用的啊 ??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表