Thread View: pl.comp.lang.perl
8 messages
8 total messages
Started by Sl
Sun, 22 May 2011 19:58
Perl cwiczenia...
Author: Sl
Date: Sun, 22 May 2011 19:58
Date: Sun, 22 May 2011 19:58
20 lines
1592 bytes
1592 bytes
Cześć! Pewnie było ale google milczy albo źle zadaję pytanie... Wziąłem o ręki książkę "Perl. Ćwiczenia" K.Juszkiewicza i przeglądam referencje. Znalazłem na stronie 54 poniższy kod który u mnie nie działa... W związku z tym mam pytanko czy da się użyć takiej konstrukcji perlu aby sprawdzić wartość zmiennej o nazwie będącej wartością zmiennej nazwa_zmiennej? #v+ #!/usr/bin/perl $liczba_dni = 30; $nazwa_zmiennej = "liczba_dni"; print $$nazwa_zmiennej, "\n"; #v- -- Pozr. sl@er
Re: Perl cwiczenia...
Author: Adam Osuchowski
Date: Sun, 22 May 2011 20:03
Date: Sun, 22 May 2011 20:03
19 lines
1339 bytes
1339 bytes
Sl@eR wrote: > Wziąłem o ręki książkę "Perl. Ćwiczenia" K.Juszkiewicza i przeglądam > referencje. Znalazłem na stronie 54 poniższy kod który u mnie nie > działa... > > #v+ > #!/usr/bin/perl > $liczba_dni = 30; > $nazwa_zmiennej = "liczba_dni"; > print $$nazwa_zmiennej, "\n"; > #v- Jak nie działa, jak działa? Masz jakiś komunikat o błędzie? > W związku z tym mam pytanko czy da się użyć takiej konstrukcji > perlu aby sprawdzić wartość zmiennej o nazwie będącej wartością > zmiennej nazwa_zmiennej? No właśnie mniej więcej w ten sposób.
Re: Perl cwiczenia...
Author: Sl
Date: Sun, 22 May 2011 20:12
Date: Sun, 22 May 2011 20:12
39 lines
1837 bytes
1837 bytes
W dniu 2011-05-22 22:03, Adam Osuchowski pisze:
>> #v+
>> #!/usr/bin/perl
>> $liczba_dni = 30;
>> $nazwa_zmiennej = "liczba_dni";
>> print $$nazwa_zmiennej, "\n";
>> #v-
>
> Jak nie działa, jak działa? Masz jakiś komunikat o błędzie?
>
Faktycznie działa, sorry za spam :) Ja miałem lekka modyfikację którą
nie usunąłem ze skryptu testując:
#v+
#!/usr/bin/perl
my $liczba_dni = 30;
my $nazwa_zmiennej = "liczba_dni";
print $$nazwa_zmiennej, "\n";
#v-
I na wyjściu otrzymywałem coś takiego:
$ ./test.pl
$
Poza tym jak dodaję use strict i use warnings to powyższy kod zwraca
komunikat:
$ ./test.pl
Can't use string ("liczba_dni") as a SCALAR ref while "strict refs" in
use at ./test.pl line 6.
Pytanko więc jak powinien wyglądać ten kod aby się nie czepiał ;)
--
pzdr.
sl@er
Re: Perl cwiczenia...
Author: Adam Osuchowski
Date: Sun, 22 May 2011 20:48
Date: Sun, 22 May 2011 20:48
13 lines
1162 bytes
1162 bytes
Sl@eR wrote: > Pytanko więc jak powinien wyglądać ten kod aby się nie czepiał ;) Jedynie wyłączyć strict refs: #v+ use strict; no strict 'refs'; #v- i zadeklarować tą zmienną jako `our' zamiast jako `my'. Działanie stricta m.in. zabezpiecza przed referencjami symbolicznymi więc jest to efekt jak najbardziej zamierzony.
Re: Perl cwiczenia...
Author: hubert depesz lubaczewski
Date: Mon, 23 May 2011 07:32
Date: Mon, 23 May 2011 07:32
13 lines
1391 bytes
1391 bytes
On 2011-05-22, Sl@eR <future_with_off_spam@nospam.com> wrote:
> Pytanko więc jak powinien wyglądać ten kod aby się nie czepiał ;)
nie używać takich konstrukcji. są złe, bardzo złe. jeśli książka poleca
stosowanie symbolicznych referencji, to należy ją zasadniczo olać.
http://stackoverflow.com/questions/1298035/how-do-i-use-symbolic-references-in-perl
depesz
--
The best thing about modern society is how easy it is to avoid contact with it.
http://depesz.com/
Re: Perl cwiczenia...
Author: Adam Osuchowski
Date: Mon, 23 May 2011 10:42
Date: Mon, 23 May 2011 10:42
7 lines
1248 bytes
1248 bytes
hubert depesz lubaczewski wrote: > nie używać takich konstrukcji. są złe, bardzo złe. jeśli książka poleca > stosowanie symbolicznych referencji, to należy ją zasadniczo olać. Skąd wiesz, że poleca? Może tylko opisuje jako jeden z istniejących elementów języka. Oficjalny manual Perla również zawiera jakieś przykłady dotyczące symbolicznych referencji. Jego też zalecałbyś olać?
Re: Perl cwiczenia...
Author: Stachu 'Dozzie' K.
Date: Mon, 23 May 2011 10:44
Date: Mon, 23 May 2011 10:44
15 lines
1858 bytes
1858 bytes
On 2011-05-23, Adam Osuchowski <someone@somewhere.com> wrote: > hubert depesz lubaczewski wrote: >> nie używać takich konstrukcji. są złe, bardzo złe. jeśli książka poleca >> stosowanie symbolicznych referencji, to należy ją zasadniczo olać. > > Skąd wiesz, że poleca? Może tylko opisuje jako jeden z istniejących > elementów języka. Oficjalny manual Perla również zawiera jakieś przykłady > dotyczące symbolicznych referencji. Jego też zalecałbyś olać? Dokumentacja to dokumentacja. Ale książka z ćwiczeniami dla Perla jednak nie powinna uczyć złych nawyków. -- Secunia non olet. Stanislaw Klekot
Re: Perl cwiczenia...
Author: Marcin Kasperski
Date: Mon, 23 May 2011 11:09
Date: Mon, 23 May 2011 11:09
23 lines
1866 bytes
1866 bytes
hubert depesz lubaczewski <depesz@depesz.com> writes:
> On 2011-05-22, Sl@eR <future_with_off_spam@nospam.com> wrote:
>> Pytanko więc jak powinien wyglądać ten kod aby się nie czepiał ;)
>
> nie używać takich konstrukcji. są złe, bardzo złe. jeśli książka poleca
> stosowanie symbolicznych referencji, to należy ją zasadniczo olać.
>
> http://stackoverflow.com/questions/1298035/how-do-i-use-symbolic-references-in-perl
Nie byłbym aż tak dogmatyczny, o ile w "poważnym" kodzie faktycznie
lepiej tego nie tykać, o tyle w jakichś skryptach ad hoc możliwość -
powiedzmy - wywołania procedury o nazwie zadanej jako parametr skryptu
czasem się przydaje.
Co do zapisu: zakładając pracę w trybie strict (zdecydowanie zalecana),
trzeba ten tryb na chwilę wyłączyć:
{
no strict 'refs';
# I tu ten brzydki kod
}
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads