根据用户';s地理位置:perl

根据用户';s地理位置:perl,perl,calendar,Perl,Calendar,我在perl脚本中使用delta_workdays()方法来计算两个日期之间的工作日数。目前,我正在使用美国配置文件进行计算,并希望添加对英国的支持。根据用户的位置,将使用美国配置文件或GB配置文件。是否有一个perl函数可以用来获取用户的位置并使用适当的配置文件 例如 if ($user_location=="US"){ my $cal = Date::Calendar->new( $Profiles->{US} ); } elsif($user_locatio

我在perl脚本中使用delta_workdays()方法来计算两个日期之间的工作日数。目前,我正在使用美国配置文件进行计算,并希望添加对英国的支持。根据用户的位置,将使用美国配置文件或GB配置文件。是否有一个perl函数可以用来获取用户的位置并使用适当的配置文件

例如

if ($user_location=="US"){  
   my $cal = Date::Calendar->new( $Profiles->{US} );  
}   
elsif($user_location=="GB"){   
   my $cal = Date::Calendar->new( $Profiles->{GB} );   
} 

您可以向系统询问时区:

use POSIX;
$user_location = strftime '%Z', localtime;
对于美国,您可能会获得PDT、MDT、MST、CDT和EDT(甚至可能是HST、HADT和AKDT)。英国应该是格林尼治标准时间


顺便说一句,对于字符串比较,请使用
eq
而不是
==

您可以向系统询问时区:

use POSIX;
$user_location = strftime '%Z', localtime;
对于美国,您可能会获得PDT、MDT、MST、CDT和EDT(甚至可能是HST、HADT和AKDT)。英国应该是格林尼治标准时间


顺便说一句,对于字符串比较,使用
eq
而不是
=

从何处获取?据我所知,没有一个系统知道其用户居住在佛罗里达州(
US-FL
),更不用说他们在那里工作了。它肯定不会在Windows上对任何人起作用(Windows只知道国家)。用户必须指定它。

从何处获取它?据我所知,没有一个系统知道其用户居住在佛罗里达州(
US-FL
),更不用说他们在那里工作了。它肯定不会在Windows上对任何人起作用(Windows只知道国家)。用户必须指定它