perl_pop_push_shift_unshift

perl的pop跟push操作数组的最右边,shift跟unshift操作数组的最左边
学习记录一下

  1. #!/usr/bin/perl -w
  2. use strict;
  3. print '@a @b @c @d 的值都为1 2 3',"\n";
  4. my @a = (1..3);
  5. pop(@a);
  6. print "\@a的值为@a,pop拿掉数组最右边的值\n";
  7. my @b = (1..3);
  8. push(@b,'4');
  9. print "\@b的值为@b,push添加一个值到数组的最右边。\n";
  10. my @c = (1..3);
  11. shift@c;
  12. print "\@c的值为@c,shift拿掉数组最左边的一个值。\n";
  13. my @d = (1..3);
  14. unshift(@d,0);
  15. print "\@d的值为@d,unshift添加一个值到数组的最左边。\n";
  16.  
  17.  
  18. [root@OTRS perl]# perl pop_push_shift_unshift.pl
  19. @a @b @c @d 的值都为1 2 3
  20. @a的值为1 2,pop拿掉数组最右边的值
  21. @b的值为1 2 3 4,push添加一个值到数组的最右边。
  22. @c的值为2 3,shift拿掉数组最左边的一个值。
  23. @d的值为0 1 2 3,unshift添加一个值到数组的最左边。

关于php的session_start的问题

Cannot send session cookie – headers already sent
网上很多文章,包括php的官方网站上写的session_start(); 之前不能有任何输出,可惜弄了半天都不行.
最后才知道跟 “session.save_path” 和 “session.auto_start” 都没有关系,把php.ini里面的”output_buffering” 改为on,重启下apache就可以了.

perl脚本计算IP

由于工作上的需要,要将IP段计算成IP,perl的Net::IP刚好用上.

  1. #!/usr/bin/perl -w
  2. use strict;
  3. use Net::IP;
  4. my $ip = new Net::IP ('192.168.0.0/24') or die;
  5. do {
  6.    print $ip -> ip(),"\n";
  7. } while(++$ip);

将文本文件的ip段计算成ip地址

  1. #!/usr/bin/perl -w
  2. use strict;
  3. use Net::IP;
  4. open (A, "<wait.txt");
  5. while (<A>) {
  6.    my($a) = $_;
  7.    my $ip = new Net::IP ("$_") or die $!;
  8.    do {
  9.       print $ip -> ip(), "\n";
  10.    }
  11.    while (++$ip);
  12.          }

用php脚本ftp上传文件

FTP脚本上传个文件,如果目标机器已经有,就提示已经存在,并且显示文件大小,
如果没有这个文件就上传,很久没有摆弄php,顺手写了一个

  1. #!/usr/bin/php -q
  2. <?php
  3. $IP = 'baiqiuyi.com';
  4. $NAME = '姓名';
  5. $PASSWD = '密码';
  6. $file = '文件名称';
  7. $fp = fopen($file, 'r');
  8. $ID = ftp_connect($IP);
  9. $RE = ftp_login($ID, $NAME, $PASSWD);
  10. $res = ftp_size($ID, $file);
  11. if ($res != -1) {
  12.        echo "文件 $file 已存在 , 大小为$res 字节 !\n";
  13. } else {
  14.        (ftp_fput($ID, $file, $fp, FTP_ASCII));
  15.        echo "文件 $file 上传完毕!\n";
  16. }
  17. ftp_close($ID);
  18. ?>

perl进度条

收藏个perl的进度条

  1. #!/usr/bin/perl -w
  2. $n = 27;
  3. for($i=1;$i<=$n;$i++){
  4. proc_bar($i,$n);
  5. select(undef, undef, undef, 0.2);
  6. }
  7. print "\n";
  8.  
  9. sub proc_bar{
  10. local $| = 1;
  11. my $i = $_[0] || return 0;
  12. my $n = $_[1] || return 0;
  13. print "\r\033[36m[\033[33m".("|" x int(($i/$n)*50)).
  14. (" " x (50 - int(($i/$n)*50)))."\033[36m]";
  15. printf("%2.1f%%\033[0m",$i/$n*100);
  16. local $| = 0;
  17. }
8 «12345»...8