寒假【perl语言学习脚本】4.1 4.2 4.3 4.4 4.5

本文深入探讨Perl编程语言的实用技巧,包括子程序定义与调用、数组参数传递、变量作用域管理及常见错误处理,适合初学者和进阶开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

###ex4_1.pl
#!/usr/bin/perl -w
use strict;
sub total {
my ( s u m , sum, sum,number);
$sum=0;
foreach $number (@_){
s u m + = sum+= sum+=number;
}
KaTeX parse error: Expected 'EOF', got '#' at position 5: sum;#̲这个将sum返回给调用者
}
#子程序total使用$sum来存储总和
my @fred = qw{ 1 3 5 7 9 };
my $fred_total = total(@fred);
print “The total of @fred is $fred_total.\n”;
print “Enter some numbers on separate lines:\n”;
my $user_total = total();
print “The total of those numbers is $user_total.\n”;

####ever think $number=shift @_;

在这里插入图片描述
#!/usr/bin/perl -w
use strict;
sub total {
my ( s u m , sum, sum,number);
$sum=0;
foreach $number (@_){
s u m + = sum+= sum+=number;
}
KaTeX parse error: Expected 'EOF', got '#' at position 5: sum;#̲这个将sum返回给调用者
}
print “the sum of 1000! is “,total(1…1000),”.\n”;
#注意不能在双括号括住的字符串里直接调用子程序,所以子程序调用的是print的另一个独立参数
在这里插入图片描述

###ex4_3.pl
#!/usr/bin/perl -w
use strict;
sub total {
my ( s u m , sum, sum,number);
$sum=0;
foreach $number (@){
s u m + = sum+= sum+=number;
}
KaTeX parse error: Expected 'EOF', got '}' at position 7: sum; }̲ sub average { …all)=1;
my($result)=shift@
;
foreach(@){
r e s u l t + = result+= result+=
;
a l l = all= all=all+1;
}
return r e s u l t / result/ result/all;
}
sub above_average {
my($mean)=&average(@_);
my $every;
my @list;
foreach KaTeX parse error: Expected '}', got 'EOF' at end of input: …y (@_){ if (every > KaTeX parse error: Expected '}', got 'EOF' at end of input: … push @list,every;#此处必须加$every,否则无法输出?
}
}
@list;
}
my @fred = above_average(1…10);
print “@fred is @fred\n”;
print “(Should be 6 7 8 9 10)\n”;
my @barney = above_average(100,1…10);
print “@barney is @barney\n”;
print “(Should be just 100)\n”;

在这里插入图片描述

#!/usr/bin/perl -w
use strict;
sub greet {
my f i r s t = s h i f t @ ; p r i n t " H I , first=shift @_; print "HI, first=shift@;print"HI,first!you are the first one here!\n";
my l a t e r = s h i f t @ ; p r i n t " h i , later=shift @_; print "hi, later=shift@;print"hi,later,$first is also here!\n";
}
greet (“fred”,“barney”)
在这里插入图片描述

#!/usr/bin/perl -w
use strict;
sub greet {
my f i r s t = s h i f t @ ; p r i n t " H I , first=shift @_; print "HI, first=shift@;print"HI,first!you are the first one here!\n";
my s e c o n d = s h i f t @ ; p r i n t " h i , second=shift @_; print "hi, second=shift@;print"hi,second! I’ve seen: $first\n";
my t h i r d = s h i f t @ ; p r i n t " h i , third=shift @_; print "hi, third=shift@;print"hi,third! I’ve seen: $first $second\n";
my f o u r t h = s h i f t @ ; p r i n t " h i , fourth=shift @_; print "hi, fourth=shift@;print"hi,fourth! I’ve seen: $first $second $third\n";
}
greet (“fred”,“barney”,“wilma”,“betty”)

小笔记
@是函数传参时放置参数的数组,可以从中取实参
比如my( p a 1 , pa1, pa1,pa2…)=@
,函数调用时填了几个参数,便可以从该数组中取到几个参数

$_是默认参数的意思,指的是在不指定的情况下,程序处理的上一个变量

欣洁的代码运行出来从第二行开始前面出现空格的问题:
不要加双引号,因为数组里的元素默认是要用空格分割的,用双引号把所有元素拼成一个字符串,不用双引号则分别输出各个元素

perl的内置警告信息
use warnings;
warnings比-w更灵活,它可以选择只对文件中使用了该编译指令的部分代码开启警告功能,而-w选项则不加区分,对整个程序中涉及的所有代码都开启警告功能

-w

use diagnostics; 这个编译命令报告更为详尽的问题描述;输出相关的错误信息,但程序启动变慢,可以通过-Mdiagnostics 来实现

W的意思是警告级别属于普通警告,numeric是警告类型属于数字操作一类

内容概要:《绿色转型美丽乡村——汾渭平原地区低碳乡村案例集》由西安空气侠环保科技有限公司编写,北京市企业家环保基金会支持,聚焦汾渭平原地区乡村低碳展的典型实践。报告梳理了国内外相关理论研究及政策背景,展示了中央与地方在低碳乡村展方面的政策措施。通过五个典型案例,包括芮城县庄上村的“光储直柔”模式、铜川耀州区克坊村的“光伏+普惠金融”、浮山县臣南河村的循环经济模式、澄城县权家河村的“风光储一体化”以及麟游县紫石崖村的“光伏+生态养殖”,详细分析了这些案例的技术路线、项目成效、主要政策、典型经验和存在问题。报告总结了清洁能源在乡村低碳展中的核心地位,强调了因地制宜展策略的关键作用,并指出了多重效益综合追求的重要性。 适合群:从事环保、农业、能源领域研究的专业士,以及关注乡村低碳展和可持续展的政策制定者和社会学者。 使用场景及目标:①为全国其他地区开展乡村能源转型实践提供有益的借鉴;②助力推动我国乡村低碳展,为实现碳达峰、碳中和目标贡献积极力量;③为政策制定者提供决策参考,促进乡村绿色转型和乡村振兴战略的实施。 其他说明:报告由多家单位参编,感谢北京市企业家环保基金会提供资金支持。文中内容及意见仅代表作者的个观点,与北京市企业家环保基金会的立场或政策无关。报告期望为全国其他地区开展乡村能源转型实践提供有益的借鉴,助力推动我国乡村低碳展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值