perl获取当前环境

来源:互联网 发布:mysql5.5 for mac下载 编辑:程序博客网 时间:2024/04/29 05:12
  在perl中获取当前登陆的用户名,要求在windows和linux下都可用.通过读取系统的环境变量实现,在xp和linux下测试通过,代码如下:
 
my  $Sys_name = $^O;
if ($Sys_name =~ /MSWin32/){
   print $ENV{'USERNAME'},"\n";
}
else {
     if($Sys_name =~ /linux/){
          print $ENV{'USER'},"\n";
     }
    else
    {
         print "Unknow\n";
     }
}
 
 

本文出自 “rainbird” 博客,请务必保留此出处http://rainbird.blog.51cto.com/211214/149961

获取主机名

my $hostname = `hostname`;

获取当前路径
perl中获取当前路径有两种方法:
1、使用CWD包

use Cwd;
print getcwd;
2、使用环境变量
print $ENV{'PWD'}
我更倾向于使用环境变量,这样不会引入额外的包

 

Perl获取当前系统时间
Perl 2010-12-06 10:41:57 阅读236 评论0   字号:大中小 订阅

perl有两个取得时间的函数:localtime和gmtime

两个函数的用法一样,区别在于localtime为取得本地时间, gmtime格林威治时间。

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);

其中:
    $sec代表秒数[0,59]
    $min代表分数[0,59]
    $hour代表小时数[0,23]
    $mday代表是在这个月的第几天[1,31]
    $mon代表月数[0,11],要将$mon加1之后,才能符合实际情况。
    $year从1900年算起的年数,所以要获得当前年就需要在$year的基础上加上1900
    $wday从星期六算起,代表是在这周中的第几天[0-6]
    $yday从一月一日算起,代表是在这年中的第几天[0,364]
    $isdst只是一个flag

下面是一个获取当前系统时间的子函数:

sub getTime
{
   #time()函数返回从1970年1月1日起累计秒数
    my $time = shift || time();
   
    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($time);
   
    $mon ++;
    $sec  = ($sec<10)?"0$sec":$sec;#秒数[0,59]
    $min  = ($min<10)?"0$min":$min;#分数[0,59]
    $hour = ($hour<10)?"0$hour":$hour;#小时数[0,23]
    $mday = ($mday<10)?"0$mday":$mday;#这个月的第几天[1,31]
    $mon  = ($mon<9)?"0".($mon+1):$mon;#月数[0,11],要将$mon加1之后,才能符合实际情况。
    $year+=1900;#从1900年算起的年数
   
    #$wday从星期六算起,代表是在这周中的第几天[0-6]
    #$yday从一月一日算起,代表是在这年中的第几天[0,364]
  # $isdst只是一个flag
    my $weekday = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat')[$wday];
    return { 'second' => $sec,
             'minute' => $min,
             'hour'   => $hour,
             'day'    => $mday,
             'month'  => $mon,
             'year'   => $year,
             'weekNo' => $wday,
             'wday'   => $weekday,
             'yday'   => $yday,
             'date'   => "$year$mon$mday"
          };
}

通过下面的方法调用:

my $date = &getTime();#获取当前系统时间的Hash
my $ymd = $date->{date};#获取yyyymmdd这样的日期 
my $year=$date->{year};#获取年
my $month=$date->{month};#获取月
my $day=$date->{day};#获取日
转:http://blog.csdn.net/linfengfeiye/article/details/7055483