跟我学Perl

    嗯,至少在离开以前说了“再见”;礼貌夫人都会为此骄傲的。我们在这个脚本里做了什么呢?有几件事情是相当明显的:第一,“hash-bang”,第二,一行告诉我们脚本要做什么的说明—从shell脚本发展出来的另一个东东,并且这是个不错的想法(在代码中并没有过多的解释!)。第三,我们用“print”函数打印出所要的信息。注意,在一串字符末尾的“ ”:Perl不会自动为你提供一个换行,所以你必须自己决定要还是不要。还要注意,在每一行代码末尾的分号:就像C语言,Perl也有同样的要求,不幸的是这常被编程者所忘记。实际上,由于有着相对易懂的信息,Perl的错误检查十分容易,作为代码语句的分隔标志,分号常被认为是下一行的前导符。如果你注意到这个问题,并不麻烦,最好记住使用分号。 数据挖掘交友

    CGI/PERL学习最后一行的意思是删除 “goodbye cruel world”文件,符号“$0”仅仅是被运行堵塞的脚本的名字的引用,“unlink”做了和“rm”一样的事。注意,“$0”比“goodbye”甚至是“/goodbye”有用的多,不管文件是什么名字,“$0”将返回这个文件名。
   写完美无缺的代码对我来说有一些不切实际。在过去的一些场合,我写了些“write-only”代码,这将使任何试着读它的变成不同的颜色。我经常尝试着提高水平,我真的希望看到这个想法得以实现。 数据挖掘实验室

    空白——tab和space键——在Perl中受到了忽略,也就是说,它是无所谓有无所谓无的。正因为这一点,你能格式化你的Perl代码来表达你正想要表达的思想,举个比较简单的例子;
@boats=(“Aloa”,“Cheoy Lee”,“Pearson”,“Mason”,Swem,“Westsail”,“S2”,“Petersen”, “Hereshoff”);#海船的名单列表。
这个例子中,我们用一些海船的名字填入数组“@boats ”中,下面的例子也许更加容易理解:

数据挖掘论坛

@array=(“Aloa”,#法国OSTAR/IOR的船
“Cheoy Lee”,#舒适但是昂贵
“Pearson”,#结实但是笨重
“Mason”,#设计良好,但有些雍肿
“Swan”,#上等船只,如果你是大款
“Westsail”,Westsail在双尾船里算是相当不错了
“S2”,#漂亮的海湾船只——但不适宜远洋
“Petersen”, #钢铁巡洋舰,宽敞但援慢
“Hereshott”,#快速而华丽,狭窄而昂贵

    这个习惯不仅仅在Perl中得到应用。绝大多数的现代语言允许附加空白,这样可以使代码更加易懂。当我写这个系列文章的时候,我将尽最大努力示范至少我自己认为好的代码样式的版本。同时也希望每一个人在创建他们自己的代码时认真考虑这件事。

数据挖掘论坛

    变量CGI/PERL学习 数据挖掘实验室

    在Perl里,易用性非常重要的。它是一种被称作“格式宽松”的语言,其中变量的定义并没有严格要求。实际上,没有什么方法可以定义32位的浮点数变量。
Perl中有三种变量,它们分别是标量型变量(Scalars),数组型变量(arranys)和散列表(hashes),除了这些颇令人头疼的名字,他们其实都很简单:仅仅包含一些数据的不同排列而已。 数据挖掘研究院

标量型变量——数字,字符串和引用
一个标量型变量由$标志来表示,例如$nuru,$joe,$pointer。
例:
“0.0421”,“Joe’s gloue”,内存地址“0Xa000”

数据挖掘交友

数组型变量——联系数字标识的标量型变量的列表或者说集合
一个数组型变量由@标志来表示,例如@v,@list,@variable
例:
0-----“Sundary”
1-----“Mondeny”
2-----“Tuesday”
3-----“Wednesday”

散列表——标量型列表的引用键
一个散列表变量由%标志来表示,例如%people,%x,%this_is_a_hash。
例:
ridcnt ——“Sherlock Holmes”
addr——“221B Backer Street”
code—“NW1”
city—“Londen”
country—“Steuth”
……
    注意,虽然数组型变量是按数字顺序存储的,但散列表却不是——恢复散列表的第一个元素的往往和你载入的第一个元素毫无关联。散列的元素通过文本键代替它们在结构中的位置来进行索引。 数据挖掘实验室

    利用这三种数据类型,你可以表示你想要的任何事,并且会很轻松的实现。

    另外很重要的一点:$a,@a 和%a三者之间完全毫无关联,他们处在不同的名字空间。我在设计程序时,尽量小心不使用这些在视觉容易产生混淆的名字。特别是像$a[0](数组@a的第一个元素的引用)这种变量已经存在的情况下——这的确是你需要注意的。

数据挖掘实验室

    可以给变量赋不同类型的值——数字型和字符串——我们下一步将进行有关两种类型的共同的操作。Perl为你提供这些,但应该记住哪些类型的用哪些操作符。
Operator Num Str
等于 == eql
不等于 != ne
小于 < Lt
大于 > gt
小于等于 <= le
大于等于 >= ge

数据挖掘交友

    当通过比较这些字母或字符串之后会觉得他们异常容易记忆和使用——比较字符的时候,就使用字符。

数据挖掘研究院

   以前我总是给出具体的例子,但这次给你们出一道足以使你们头发变白,身心疲惫的难题:
#!/usr/bin/perl
# A Political evaluation script

$a=“A1”
$b=“George”;
if($a>$b)print $a wordinake a better Presideut 数据挖掘论坛

If($a<$b) print $b word make a betler Presiclent
;
If($a=$b)Print $a or $b, tlere’s no Diflereue
;
    输出结果表明其中并没有什么不同,这也许只反映出一个政治性的现实,但我们比较出的结果又是什么呢?对了,我们应该使用字符串操作,不对吗?
#!/usr/bin/perl
# A political evaluation script

数据挖掘工具

$a = "Al";
$b = "George"; 数据挖掘工具

if ( $a > $b) { print "$a would make a better President.
"; }
if ( $a < $b) { print "$b would make a better President.
"; }
if ( $a==$b) { print "$a or $b, there"s no difference...
"; } 数据挖掘实验室

    呵呵,输出表明它们俩没有什么不同的地方。这也许是政治上的真实反映,但对我们期望的比较输出却……哦,对了,我们应该使用字符串操作符,恩? 数据挖掘工具

#!/usr/bin/perl
# A political evaluation script

$a = "Al";
$b = "George";

数据挖掘交友

if ( $a gt $b) { print "$a would make a better President.
"; }
if ( $a lt $b) { print "$b would make a better President.
"; }
if ( $a eq $b) { print "$a or $b, there"s no difference...
"; } 数据挖掘工具

[数据挖掘专家] [数据挖掘研究院] [数据挖掘论坛] [数据挖掘实验室]
上一篇:cgi学习简明教程
下一篇:跟我学Perl
最新评论共有 1 位网友发表了评论 , 查看所有评论
发表评论( 不能超过250字,需审核,请自觉遵守互联网相关政策法规。 )
匿名?
数据挖掘网站导航 数据挖掘论坛导航
  • 数据挖掘工具
  • 数据挖掘论坛
  • DataCruncher - Cognos
  • MineSet - MathSoft
  • Intelligent Miner - GainSmarts
  • Sqlserver - SAS - Clementine
  • CART - Weka - WizSoft
  • NeuroShell - ModelQuest
  • data mining tools - Darwin
  • 数据挖掘交友
  • 数据挖掘博客
  • 数据挖掘工具
  • 数据挖掘资源
  • 数据挖掘技术算法
  • 数据挖掘相关期刊、会议
  • 研究院联盟合作专区
  • 数据挖掘基础与相关技术
  • 数据挖掘厂商与就业
  • 数据挖掘研究者乐园
  • 知名厂商数据挖掘工具资料
  • 国内数据挖掘实验室
  • Foreign Data Mining Lab
  • 热点关注
  • Perl 常用函数
  • Perl直接入门详尽指南
  • 用Perl生成随机密码
  • When perl is not quite fast enough
  • Perl简单模块指南
  • Perl DBI连接MySQL数据库
  • 我对 Catalyst 的理解和介绍
  • cgi学习简明教程
  • 我对 Catalyst 的理解和介绍
  • 如何使用strict和warnings
  • 论坛最新话题
  • Foundations of Statistical Natural Langu
  • Game Theory meet Data Mining: A Recent P
  • System Building: How does it help or hin
  • 数据挖掘与Clementine培训
  • 新手报到
  • 求 SASEM 客户流失预测分析
  • 数据挖掘工程师/搜索研究院—北京——无线
  • 数据挖掘入门介绍(如何着手数据挖掘)
  • Information Overload Survey Results
  • The INEX 2005 Workshop on Element Retrie
  • 相关资讯
    数据挖掘实验室资料
  • 数据挖掘博客地址
  • 数据挖掘实验室网站地址
  • Prepare for Medicare audits by using dat
  • 注册成为SAS用户与爱好者俱乐部会员
  • 水南梅
  • 明日烟
  • 新人报道
  • 下载
  • 厦门服务器托管,450元/月—0592-5177319 高
  • 买空间送域名--0592-5177319 高静