perl语言总结2

1.Perl 中所有变量都是全局的;也就是说,这些变量可以在程序的任意部分使用
2.函数调用&chomp;如果编译器在调用之前知道此子程序的定义,或者 Perl 从语法中能知
道这是一个子程序调用,则子程序前的符号&是可以省略的
3.<>的使用
4.printf ?Hello, %s; your password expires in %d days!/n?,
$user, $days_to_die;
5.文件句柄(filehandle)是Perl 程序I/O 连接的名字,是Perl 和外界的纽带。也就是说,它是连接的名字,而非文件的名字。
打开文件句柄:open
open CONFIG, ?dino?;
open CONFIG, ?<dino?;
open BEDROCK, ?>fred?;
open LOG,?>>logfile?;
关闭文件句柄:close BEDROCK;
die 函数来创建我们自己的严重错误.类似于java的throws new exception("Cannot create logfile:"+i)
if(!open LOG, “ >>logfile”
die “ Cannot create logfile:$!”
}
warn 函数与die类似。
6.hash.
要访问hash 元素,可以使用下面的语法:
$hash{$some_key}
$family_name{?fred?} = ?flintstone
Hash 的key 可以是任意的表达式
要引用整个hash,使用百分号(?%?)作为前缀。
hash 可以转换为列表,或者反过来.
hash 之间拷贝:
%new_hash = %old_hash;
%inverse_hash = reverse %any_hash;(反转)

my %last_name = (
“ fred” => “ flintstone
“ dino” => unde
“ barney” => “ rubble
“ betty”=> “ rubble
);
keys函数会返回此 hash 的所有keys,values函数将返回所有的 values。
my@k = keys %hash;
my@v = values %hash;

if(%hash){
print ?That was a true value!/n?;
}
述语句为true,当且仅当其至少含有一个key/value对

如果想迭代hash 的每一个元素(如,检查每一个元素) ,一种通常的方法是使用 each 函数,它将返回 key/value对的2元素
列表◆。当对同一个 hash 函数进行一次迭代时,将返回下一个 key/value 对,直到所有的元素均被访问。
实践中,一般只在while 循环中使用each:
while (($key, $value) = each %hash){
print ?$key => $value/n?;
}
foreach也可以使用。

要查看hash 中是否存在某个key(某人是否有借书卡) ,可以使用 exists 函数,如果hash 中存在此 key,则返回true,这和
是否有对应的value 无关:
if(exists $books{$dino}){
print ?Hey, there?s a libaray card for dino!/n?;
}

delete函数将某个给定的 key(包括其对应的value)从hash 中删除。 (如果不存在这个key,则什么也不做;不会有警告或者
错误信息。 )
my $person = ?betty?;
delete $books{$person}; #将$person 的借书卡删除掉
7.支持自增和自减
8.裸块一般为私有变量提供作用域
9.循环控制:
last会立刻结束循环。 (这同 C 语言或其它语言中的?break?语句类似) 。它从循环块中“紧急退出” 。当执行到 last,循环即
结束
有时还不希望结束循环,但本次循环已经结束。这种情况下,next 是非常适用的。它跳到当前循环块的最后面(块内)◆。
next之后,又会进入下一轮循环(这和C 或者类似语言的 ?continue?相似)
循环控制的第三个操作是 redo。它会调到当前循环块的顶端,不进行条件表达式判断以及接着本次循环。 (在 C 或类似语
言中没有这种操作。 )
10.三元操作符 ?:Express ? if_true_expr : if_false_expr
&&, || , ?:,均有一个共同的特殊性质:根据左侧的值(true或 false) ,来判断是否执行右侧代码
11.操作目录:
chdir可以改变工作目录。它和 Unix shell下的 cd命令类似:
chdir ?/etcr die ?cannot chdir to /etc: $!?;

从给定目录得到其文件名列表的方法还可以使用目录句柄(directory handle) 。目录句柄外形及其行为都很像文件句柄。打
开(使用opendir 而非 open) ,从中读入(使用 readdir而非 readline) ,关闭(使用 closedir 而非close) 。不是读入文件的内
容,而是将一个目录中的文件名(以及一些其它东西)读入

在Unix shell中,我们
可以使用rm命令将单个文件或一批文件删除:
$ rm slate bedrock lava
在Perl中,我们使用 unlink:
unlink ?slate?, ?bedrock?, ?lava?;

将一个给定文件重命名可以很简单的使用rename 函数做到:
rename “ old” , “ new
这类似于Unix 的mv 命令,将一个叫做old的文件重命名为new,且在同一个目录中。甚至可以在不同的目录之间操作:
rename ?over_there/some/place/some_file?, ?some_file?;

在一个目录下创建新目录是很容易的。使用 mkdir函数:
mkdir ?fred?, 0755 or warn ?Cannot make fred directory: $!?;
true意味着成功,$!会在失败时被置值。

Unix的chomd 命令可以改变文件或目录的权限。同样的,Perl 的chomd函数也能完成这种任务:
chmod 0755, ?fred?, ?barney?;

基于STM32 F4的永磁同步电机无位置传感器控制策略研究内容概要:本文围绕基于STM32 F4的永磁同步电机(PMSM)无位置传感器控制策略展开研究,重点探讨在不依赖物理位置传感器的情况下,如何通过算法实现对电机转子位置和速度的精确估计与控制。文中结合嵌入式开发平台STM32 F4,采用如滑模观测器、扩展卡尔曼滤波或高频注入法等先进观测技术,实现对电机反电动势或磁链的估算,进而完成无传感器矢量控制(FOC)。同时,研究涵盖系统建模、控制算法设计、仿真验证(可能使用Simulink)以及在STM32硬件平台上的代码实现与调试,旨在提高电机控制系统的可靠性、降低成本并增强环境适应性。; 适合人群:具备一定电力电子、自动控制理论基础和嵌入式开发经验的电气工程、自动化及相关专业的研究生、科研人员及从事电机驱动开发的工程师。; 使用场景及目标:①掌握永磁同步电机无位置传感器控制的核心原理与实现方法;②学习如何在STM32平台上进行电机控制算法的移植与优化;③为开发高性能、低成本的电机驱动系统提供技术参考与实践指导。; 阅读建议:建议读者结合文中提到的控制理论、仿真模型与实际代码实现进行系统学习,有条件者应在实验平台上进行验证,重点关注观测器设计、参数整定及系统稳定性分析等关键环节。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值