Можно использовать встроенный модуль File::stat
(включенный с Perl 5.004).
Вызов stat($fh)
возвраты массив со следующей информацией о дескрипторе файла передал в (от perlfunc страница справочника для stat
):
0 dev device number of filesystem
1 ino inode number
2 mode file mode (type and permissions)
3 nlink number of (hard) links to the file
4 uid numeric user ID of file's owner
5 gid numeric group ID of file's owner
6 rdev the device identifier (special files only)
7 size total size of file, in bytes
8 atime last access time since the epoch
9 mtime last modify time since the epoch
10 ctime inode change time (NOT creation time!) since the epoch
11 blksize preferred block size for file system I/O
12 blocks actual number of blocks allocated
Элемент номер 9 в этом массиве даст Вам прошлый измененный раз с эпохи ( 0:00 1 января 1970 GMT). От этого можно определить местное время:
my $epoch_timestamp = (stat($fh))[9];
my $timestamp = localtime($epoch_timestamp);
Для предотвращения магическое число 9 необходимых в предыдущем примере дополнительно используйте Time::localtime
, другой встроенный модуль (также включенный с Perl 5.004). Это требует некоторого (возможно) более четкого кода:
use File::stat;
use Time::localtime;
my $timestamp = ctime(stat($fh)->mtime);
Чтобы отключить подчеркивания глобально для всех меток, вы можете переопределить шаблон по умолчанию для меток, например:
<Style x:Key="{x:Type Label}"
TargetType="{x:Type Label}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Label}">
<Border Background="{TemplateBinding Background}"
BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
Padding="{TemplateBinding Padding}"
SnapsToDevicePixels="true">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
RecognizesAccessKey="False"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled"
Value="false">
<Setter Property="Foreground"
Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Он отличается от шаблона по умолчанию в этой строке: RecognizesAccessKey="False"
.
Поместите этот стиль в глобальные ресурсы вашего приложения (App.xaml
), и ваши ярлыки больше не будут распознавать подчеркивания.