Вот код, я знаю, что это не идеальный perl. Если у вас есть представление о том, как я лучше, дайте мне знать. Мой главный вопрос: как распечатать массивы без использования Data :: Dumper?perl печать хеш массивов без данных Data: Dumper
#!/usr/bin/perl
use Data::Dumper qw(Dumper);
use strict;
use warnings;
open(MYFILE, "<", "move_headers.txt") or die "ERROR: $!";
#First split the list of files and the headers apart
my @files;
my @headers;
my @file_list = <MYFILE>;
foreach my $source_parts (@file_list) {
chomp($source_parts);
my @parts = split(/:/, $source_parts);
unshift(@files, $parts[0]);
unshift(@headers, $parts[1]);
}
# Next get a list of unique headers
my @unique_files;
foreach my $item (@files) {
my $found = 0;
foreach my $i (@unique_files) {
if ($i eq $item) {
$found = 1;
last;
}
}
if (!$found) {
unshift @unique_files, $item;
}
}
@unique_files = sort(@unique_files);
# Now collect the headers is a list per file
my %hash_table;
for (my $i = 0; $i < @files; $i++) {
unshift @{ $hash_table{"$files[$i]"} }, "$headers[$i]";
}
# Process the list with regex
while ((my $key, my $value) = each %hash_table) {
if (ref($value) eq "ARRAY") {
print "$value", "\n";
}
}
Можете ли вы использовать другой модуль из CPAN вместо Data :: Dumper? – stevenl
В чем проблема, которую вы пытаетесь решить? Что не так с 'Data :: Dumper'? Это модуль Core, и его выход может быть настроен ('perldoc Data :: Dumper'). – toolic
Мне нужно переместить набор заголовков через 100+ файлов в конец файлов #include в программе на C++/C. Они должны быть включены последними из-за конфликтов пространства имен между C и C++ файлами. Я не собираюсь делать это вручную. Поэтому у меня есть хэш файлов с заголовками в списке, который нужно переместить на дно. –