Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: lug-bg: Perl system() or exec()


  • Subject: Re: lug-bg: Perl system() or exec()
  • From: Peter Pentchev <roam@xxxxxxxxxxx>
  • Date: Mon, 7 Mar 2005 13:45:05 +0200

On Mon, Mar 07, 2005 at 01:16:53PM +0200, Sava Chankov wrote:
> Peter Pentchev wrote:
> >On Mon, Mar 07, 2005 at 11:37:17AM +0200, Sava Chankov wrote:
> >>Peter Pentchev wrote:
> >Проблемът не е толкова в генерирането им, колкото в подаването им
> >през шела към... към......
> 
> Че какъв е проблема за подаването на аргументи към едноредовия скрипт? 
> Вярно, че не става през масива @ARGV, но за тази цел може да се ползва хеша 
> %ENV. Примерно:
> 
> SOMETHING="life";SOMETHINGELSE="something else";perl -pi 
> -e's/$ENV{SOMETHING}/$ENV{SOMETHINGELSE}/og'
> 
> >А ако изчисляването на $something и $somethingelse не е нещо
> >тривиално, а има смисъл да бъде направено само веднъж, тогава...
> >
> >perl -pi -e 'BEGIN { $something="blah"; $somethinglese="furrfu"; }
> >s/^$something.*\$/$somethingelse/g'
> 
> може би искаш да кажеш 
> perl -pi -e '$something="blah"; $somethinglese="furrfu"; 
> s/^$something.*\$/$somethingelse/og'
> 
> /o - compile the regexp only once

Не, искам да кажа именно с BEGIN, защото дори и да таковаме израза само
веднъж, все пак самото *изчисляване* на $something и $somethingelse
преди това може да е по-сложно и/или да има странични ефекти.  Затова
искам да го сложа в BEGIN, да не мъчим виртуалната машина да ги смята на
всеки ред :)

Макар че и ти си прав - и ти си много прав - най-добрият вариант в
случая май е комбинация от двете: изчисляване на променливите в BEGIN
блок и след това използването им в s///o.  А между другото, точно в този
случай от /g няма никакъв смисъл - къде ще match-не втори път с тая
чавка отпред? :)

Поздрави,
Петър

-- 
Peter Pentchev	roam@xxxxxxxxxxx    roam@xxxxxxxx    roam@xxxxxxxxxxx
PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
"yields falsehood, when appended to its quotation." yields falsehood, when appended to its quotation.

Attachment: pgp2b_CiZ_3wS.pgp
Description: PGP signature



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.