LinuxSir.cn,穿越时空的Linuxsir!

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

请教一个脚本

[复制链接]
发表于 2004-2-8 16:18:56 | 显示全部楼层 |阅读模式
  1. my $count=0;
  2. my $statement="";
  3. while (<>) {
  4.         chomp;
  5.         while (/{|\(|\[/g) { $count++ };
  6.         while (/}|\)|\]/g) { $count-- };
  7.         $statement .=$_ . "";
  8.         if (!$count) {
  9.                 eval $statement;
  10.                 if ($@) { print "Syntax error.\n"};
  11.                 $statement="";
  12.                 $count=0;
  13.         }
  14. }
复制代码
这是一个交互的perl'shell,有哪位给解释解释~,谢谢啦~ :thank
发表于 2004-2-8 17:13:59 | 显示全部楼层
evel函数的例子置顶有。。

  1. #!/usr/bin/perl
  2. $print="print ("hello,world\\n");";
  3. eval ($print);
  4. #run as perl command.
复制代码

我改了一下族长的题,怎么会这样?

  1. # cat ta.pl
  2. #!/usr/bin/perl -w
  3. my $count=0;
  4. my $statement="";
  5. print "$statement\n";
  6. while (<> ) {
  7.         chomp;
  8.         while (/{|\(|\[/g) { $count++ };
  9.         while (/}|\)|\]/g) { $count-- };
  10.         $statement .=$_ . "";
  11.         print "$statement\n";
  12.         if (!$count) {
  13.                 eval $statement;
  14.                 if ($@) { print "Syntax error.\n"};
  15.                 $statement="";
  16.                 $count=0;
  17.         }
  18. }
  19. # perl ta.pl

  20. 123
  21. 123
  22. 234
  23. 234
  24. sfok
  25. sfok
  26. Unquoted string "sfok" may clash with future reserved word at (eval 3) line 2, <> line 3.
  27. lksf
  28. lksf
  29. Unquoted string "lksf" may clash with future reserved word at (eval 4) line 2, <> line 4.
复制代码

请指教,PS:族长可以先不说,等大家有个机会。。;) :p
 楼主| 发表于 2004-2-8 17:23:31 | 显示全部楼层
这是一个交互试的shell,执行的时候以[,{或(开头,中间输入perl代码,以],}或)结束,用于简单的perl语句练习的~ ;)
如:
perl file.pl
{                 <=开头
print "ok\n"      <=输入语句代码
}                  <=结尾
ok                 <显示eval后的结果
 楼主| 发表于 2004-2-9 14:30:27 | 显示全部楼层
最初由 devel 发表
这个脚本还需要改进,请兄弟们改改它。。

这是我在<<perl技术内幕>>上抄的~, ;),如果你有的话,可以看一看!
发表于 2004-2-9 22:00:11 | 显示全部楼层
没买有这本书,这是本好入门书,我和javalee强烈向初学者推荐。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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