Perl 基础知识分享(1)

Perl 基础知识分享(1)

@(运维Devops知识库)[perl基础知识]

变量

标量变量

标量可以包含字符串、数字、对象、引用.

my $name = "John";    # this is a string
my $age = 28;         # this is a number (integer)
my $float = 28.5;     # also a number, but a float
my $car = Car->new(); # this is an object from the class Car

数组变量

数组列表。像一个购物清单。他们包含了很多的标量.

my @names = ("John", "Fred", "Charley");
my @to_buy = qw(Cheese Butter Salt Lemons Oranges Apples);

访问数组元素必须使用索引。索引是从零开始的:

say "First name: " . $names[0];
say "Last name: " . $name[2];
say "Also last name: " . $name[-1];

分割字符串成数组:

my $string = "John,Fred,Carl,Lewis";
my @names = split(/,/, $string);

把数组连接成一个字符串:

my @names = ("John", "Fred", "Carl", "Lewis");
my $string = join(",", @names);     # -> John,Fred,Carl,Lewis

如果你想遍历一个数组,这样做:

for my $name (@names) {
   say "Current name: $name";
}

哈希变量

hashs 比较像数组,但是它有着命名的索引,一般叫做键。

my %person = (
   name => "John",
   age  => 28,
   city => "New York"
);

访问一个hash 必须用key:

say "Name: " . $person{"name"};
say "Age: " . $person{"age"};
say "City: " . $person{"city"};

如果你遍历hash 可以这样做. 但是没有排序.

for my $key ( keys %person ) {
   say "key: $key -> value: " . $person{$key};
}

条件语句

if ( $name eq "John" ) {
   say "Hello, my name is John!";
} else {
   say "Well, my name is not John...";
}

if ( $name ne "John" ) {
   say "Yes, my name is NOT John...";
} else {
   say "Hello, my name is John!";
}

if ( $age < 30 ) {
   say "I'm younger than 30.";
} elsif ( $age >= 30 && $age <= 50 ) {
   say "Well, I'm between 30 and 50.";
} else {
   say "I'm older than 50.";
} 

循环

for my $num (1..5) {
   say "> $num";
}

# looping over an array
for my $item (@array) {
   say "> $item";
} 

正则表达式

my $name = "John";
if ( $name =~ m/john/ ) {     # will not match, because the "J" in $name is uppercase
}

if ( $name =~ m/john/i ) {    # _will_ match, because we use the "i" modifier for case-insensitive matching
}

$name =~ s/john/Fred/i;       # this will replace the first match of "john" (regardless of its case) with "Fred"
$name =~ s/john/Fred/ig;      # this will replace all matches of "john" (regardless of its case) with "Fred"

函数

sub my_function {      # define the function called "my_function"
}

sub my_function {      # define the function called "my_function" 
   my $param1 = $_[0]; # get the 1st parameter and save it in $param1
   my $param2 = $_[1]; # get the 2nd parameter and save it in $param2
   my $param3 = $_[2]; # get the 3rd parameter and save it in $param3

}

sub my_function {
   my ($param1, $param2, $param3) = @_; # the same as above
}

my_function();     # call the function "my_function"
my_function;       # also calls "my_function"
&my_function;      # also calls "my_function"
my_function("john", 28);    # call "my_function" with 2 parameters
my_function "john", 28;     # also calls "my_function" with 2 parameters: the brackets are not needed

辅助函数

打印一个列表上下文,数组,hash

use Data::Dumper;

say Dumper($scalar);
say Dumper(@array);
say Dumper(%hash);
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容