Вы хотите strace (1) для этого; это перечисляет все сделанные системные вызовы. См. страницу руководства для получения дополнительной информации о различных способах представить данные трассировки.
Вы могли бы также найти ltrace (1) полезным, если Вы хотите межбиблиотечные вызовы, а не прослеженные системные вызовы.
Можно сделать это с небольшим жемчугом:
#!/usr/bin/perl
use strict;
use warnings qw(all);
use HTML::Entities qw(encode_entities);
use Config::IniFiles;
use File::Spec;
foreach my $f (@ARGV) {
my $ini = Config::IniFiles->new( -file => $f );
my (undef, undef, $name) = File::Spec->splitpath($f);
$name =~ s/\.url$//; # / # this comment un-confuses the syntax highlighter
my $name_esc = encode_entities($name);
my $url_esc = encode_entities($ini->val('InternetShortcut', 'URL'));
print <<HTML
<a href="$url_esc">$name_esc</a>
HTML
}
Это должно обработать все хорошо. Необходимо использовать grep
& cut
, но затем необходимо было бы надеяться, выходя, не требуется, и что разделы в ini-формате .url файл не имеют значения.
HTML::ENtities
иConfig::IniFiles
. Путь к этим модулям может быть в корне и может потребоватьuse lib
. И@ARGV
содержит вход путей к файлам. – Question Overflow 17.04.2013, 10:44