2014-02-11 4 views
1

у меня есть несколько команд в файле teams.txt выглядит как:Perl: найдите команду игрока. Есть ли более элегантный способ?

team1 = {bob marc steve} 
team2 = {john maria} 

Файл форматирования можно изменить в соответствии с моим вкусом.

Теперь мне нужно выяснить, к какой команде принадлежит игрок, скажем, боб. До сих пор я использую для этого open file -> while -> match pattern.

Интересно, могу ли я переформатировать файл teams.txt и использовать Config :: General или любой другой предумышленный инструмент из cpan.

Pls Мне понравятся новые идеи! (с использованием perl 5)

ответ

0

Если это настоящая задача для слов и большие файлы, я бы использовал SQLite и некоторый базовый SQL-запрос для получения этой информации.

Насти, но просто:

my $player = 'john'; 
#return only the team names 
my @found = `grep -w $player file1 file2 | cut -f1 -d"="`; 
chomp(@found); 
if (@found){ 
    print "We found $player in teams: ".join(',',@found)."\n"; 
} 
Смежные вопросы