使用perl脚本调用socat监控haproxy状态
举个栗子
1 | my @items; |
perl的一些实用写法
格式化打印(以下表示格式化打印数组item中的前四项元素):
1
2
3my @item = ("a", "b", "c", "d");
my $state_format = " %-20s %-40s %-40s %-40s\n";
printf($state_format, @item[0], @item[1], @item[2], @item[3]);替换字符串中的某个字符(以下表示替换标量key中一个或多个“-”号为一个空格,且“-”号不位于开头或末尾):
1
$key =~ s/(?<=.)-+(?=.)/ /g;
判断字符串中是否含有某个字符或字符串(以下表示判断数组item中第一个元素中是否含有“# ”这个字符串):
1
2
3if (@item[0] =~ /# /){
***;
}在perl中执行shell命令(以下表示将shell命令下的echo “hello”结果存储到标量items中;”ls”等命令的结果需要用到数组来存储):
1
$items = `echo "hello"`;
遍历数组时,使用默认变量代替当前遍历值(以下表示使用“$_”代替了每次遍历的数组items中的元素):
1
2
3foreach (@items){
$_ .= "\n";
}根据特定字符分隔字符串(以下表示将标量string以空格分隔,分隔的结果存储在数组first_line中,此时first_line的内容为(“a”, “b”, “c”, “d”),再将first_line的最后一个元素赋值给数组item的第一个元素):
1
2
3my $string = "a b c d";
my @first_line = split(" ", $string);
@item[0] = @first_line[-1];