如何在 Perl 中获取 DateTime 对象的年份?

M.E*_*.E. 0 perl

我正在尝试从 Perl 中的 DateTime 变量中提取年份。

我试过这个:

% cat test2
#!/usr/local/bin/perl

use strict;
use DateTime;

my $dt_begin = DateTime->new(
        year    => 2000,
        month   => 1,
        day     => 1,
);

print "###\n$dt_begin $dt_begin->year\n###\n";
Run Code Online (Sandbox Code Playgroud)

我得到这个作为输出:

% ./test2
###
2000-01-01T00:00:00 2000-01-01T00:00:00->year
###
Run Code Online (Sandbox Code Playgroud)

虽然我期待:

% ./test2
###
2000-01-01T00:00:00 2000
###
Run Code Online (Sandbox Code Playgroud)

sti*_*bit 5

year()是一个方法,方法调用没有内插。您可以使用串联:

...
print("###\n$dt_begin " . $dt_begin->year() . "\n###\n");
...
Run Code Online (Sandbox Code Playgroud)

或者printf()

...
printf("###\n%s %i\n###\n", $dt_begin, $dt_begin->year());
...
Run Code Online (Sandbox Code Playgroud)