|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Dmitriy Goldobin 2:5020/400 05 May 2000 10:23:28 To : All Subject : Re: some q -------------------------------------------------------------------------------- Hi! Докапываться до _стиля_ занятие неблагодарное. Одно дело ошибки, другое стиль. Если у человека cfg также недоступен посторонним людям как и pl, то почему бы и не держать в нем код? А по стилю можно придраться к _любому_ коду. Хочешь до твоего докопаюсь? > #!/usr/local/bin/perl -w > use strict; > > my %conf; # configuration array and filename > my $config_file = substr ( $0, 0, rindex ( $0, '.' ) ) . '.cfg'; (my $config_file = $0) =~ s|(\.[^./\\]*)?$|.cfg|; скрипт не обязан иметь расширение. > open ( CONF, $config_file ) or die "Can't open $config_file $!"; > while ( <CONF> ) { > chomp; > next if /^#/; > my ( $key, $value ) = split '=', $_, 2; > unless ( $value ) { > while ( <CONF> ) { > chomp; > last if $_ eq '='; > $value .= $_; > } > } > ( $conf { $key } = $value ) =~ s/\\n/\n/go; > } > close ( CONF ); что будет если в одной из строк забудут '=', вставят до или после него пробел или окажется пробел после '=' завершающего блок? Если значением параметра должна быть путая строка? Hафиг такую многоcрочность. Синтаксис конфига получается еще более чувствителен к пробелам чем ненавистный мне makefile. Я бы например немного покороче написал: my %conf = map { /\s*(.*?)\s*=\s*(.*?)\s*$/ } <CONF>; но это отнюдь не значит что у меня 'правильнее' чем у тебя. Это только вопрос стиля. Каждый пишет как ему нравится. Bye. --- ifmail v.2.15dev5 * Origin: Electronic Microsystems JSC (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/2195681a8d559.html, оценка из 5, голосов 10
|