首页 > 编程语言 >perl基本语言语法(与java,c#不同的地方积累)

perl基本语言语法(与java,c#不同的地方积累)

时间:2023-08-08 22:36:41浏览次数:37  
标签:java c# list perl add joe hello



连接字符串 

perl 用 .    “hello”+"hello"   可用x号  "hello"*3  “hellohellohello” 

java,c#用+ "hello"+"hello"


运算符

perl

perl基本语言语法(与java,c#不同的地方积累)_语言


等待输入:

$line=<STDIN>;

或者

$line=<>;


未定义的字符值

undef --不会报错

当作数字使用时为0

当作字符串使用时为空


判断是否为空 用 defined()


数组的最后一个元素索引 

例如:$list[99]="end";

$#list或者-1为最后一个元素的索引 

也就是说  $list[$#list] 或者 $list[-1]里也是 "end"


清空数组的方法: $list=()


列表

qw -----给列表中的内容加上双引号 例子如下:

qw(a b c)  等于 ("a"  "b"  "c")  

@list=qw(a b c)


从列表中移出或者打入数据

pop push


递增符号..

例如:  6..10  表示6,7,8,9,10


reverse返序输出

reverse 6..10  表示 10,9,8,7,6


子程序定义

sub add

{

$n+=1;

print "This is a number $n";


}



调用子程序(呼叫子程序)

&add;

ps:如果程序的定义在  呼叫之前 可省略与号&

带参数的子程序

$n=&add(1,2);


sub add

{

$_[0]+$_[1];

}

或者定义私有变量

sub add

{

my($m,$n);     #用my定义语块中的私有变量

($m,$n)=@_;    #将参数赋给参数

$m+$n;

}

其他用法:

shift  @_   #得到第一个参数

foreach(@_)

{

$all+=$_;

}


输入输出定向

<    表示此文件只用来输入

> 表示存为一个新文件

>> 表示追加存入文件


异常输出

if(!open LOG,  ">>filename")

{

die "can't open the file:$!"

}



if模块

if()

{}

elsif()

{}

else

{}


跳出循环

perl: 用last

java,c#用 break


next

跳到内循环的底端 然后正常进入下一个循环的判断条件


redo

跳到内循环的顶端,不进入判断条件 直接重做一遍


智能匹配符~~

无论是什么类型的变量(哈希表,字符串,数值) 都能判断相等


条件语句块

perl
given($a)
{
when(/joe/i){say "Name has joe in it'}
when(/^joe/){say 'Name start with joe'}
when('joe') {say 'Name is joe'}
default {say 'i don't see a joe''}
}

java c#
switch(i)
 {
    case 1:
     printf("1\n");
     break;
    case 2:
     printf("2\n");
     break;
 }
异常处理模块
perl
eval{};
print "An error occurred: $@"  if  $@;

java c#:
try{}
catch{}

标签:java,c#,list,perl,add,joe,hello
From: https://blog.51cto.com/u_16218512/7013084

相关文章

  • 遇到的问题------------时间格式转化时java.text.ParseException: Unparseable date:
    -时间格式转化时java.text.ParseException:Unparseabledate:""异常把String time=2013-09-22用 privatefinalstaticSimpleDateFormatsimpleDateFormat=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");simpleDateFormat.parse(time.trim()));转化时报错java.text.......
  • java解析json
    {"status":0,"message":"ok","total":2,"results":[{"name":"蓝光COCO金沙","location":{"lat":30.68754......
  • java调用百度地图web服务api-----该方法可用在js跨域请求上
    百度地图Web服务API为开发者提供http接口,即开发者通过http形式发起检索请求,获取返回json或xml格式的检索数据。用户可以基于此开发JavaScript、C#、C++、Java等语言的地图应用。api官网说明链接:http://developer.baidu.com/map/webservice.htm可用接口列举:获取相关地址提示place......
  • JSP----jQuery插件ContextMenu生成右键菜单
    讲述三个内容:一:简介二:使用示例三:在jsp中动态生成的代码记录一:简介ContextMenu 译自:http://www.trendskitchens.co.nz/jquery/contextmenu/ ContextMenu是一个轻量级jQuery插件,用于选择性地用自己创建的菜单代替浏览器的默认右键菜单。 特点 1.可以在一个页面中使用多个右......
  • HandlerSocket的perl接口操作方法
    实例化:/*   *String $host:MySQLip;  *String $port:handlersocket插件的监听端口,它有两个端口可选:一个用于读、一个用于写   */ $hs=newHandlerSocket($host,$port);运用例子:#9998为读取端口详见上一篇handlersocket的安装my$args={host=>'loca......
  • mysql配置my.cnf包含innodb配置详解
    1.#以下选项会被MySQL客户端应用读取。2.#注意只有MySQL附带的客户端应用程序保证可以读取这段内容。3.#如果你想你自己的MySQL应用程序获取这些值。4.#需要在MySQL客户端库初始化的时候指定这些选项。5.6.#7.[client]8.#password=[your_passwo......
  • CF1239E 题解
    CF1239E给定\(2n\)个数,将其重排成\(2\timesn\)的矩阵,最小化:从\((1,1)\)走到\((2,n)\),只可向右下走的所有方案中,途径所有数的和的最大值。\(n\le25,|V|\le5\times10^4\)。考场上有个\(n\le10\)的包,分值高达\(40\)。注意到\(\binom{20}{10}\approx10^5\)可枚......
  • 自制串口助手zcom.1.3.exe
    zcom.1.3.exehttps://www.aliyundrive.com/s/xpnLZvbRhjy提取码:点击链接保存,或者复制本段内容,打开「阿里云盘」APP,无需下载极速在线查看,视频原画倍速播放。......
  • 《CUDA编程:基础与实践》读书笔记(1):CUDA编程基础
    1.GPU简介GPU与CPU的主要区别在于:CPU拥有少数几个快速的计算核心,而GPU拥有成百上千个不那么快速的计算核心。CPU中有更多的晶体管用于数据缓存和流程控制,而GPU中有更多的晶体管用于算数逻辑单元。所以,GPU依靠众多的计算核心来获得相对较高的并行计算性能。一块单独的GPU无......
  • OpenStack简介
    OpenStack简介目录OpenStack简介1、云计算模式2、云计算虚拟化openstack之间的关系?3、OpenStack中有哪些组件?4、计算节点负责虚拟机运行5、网络节点负责对外网络与内网之间的通信5.1网络节点仅包含Neutron服务5.2网络节点包含三个网络端口6、存储节点负责对虚拟机的额外存储......