ďťż
 
zamiana wartosci na zmienna ďťż
 
zamiana wartosci na zmienna
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

zamiana wartosci na zmienna



Lukasz PUZON Brodowski - 21-10-2007 00:01
zamiana wartosci na zmienna
  Witajcie
Chcialbym zmienic wartosc podana w argumencie $ARGV[0] na nowa zmienna, np.
jesli uzytkownik poda w argumencie jakis_argument, to chcialbym zamienic to
na $jakis_argument i wyswietlic postawina wczesniej wartosc zmiennej
$jakis_argument.

Z gory dzieki
LPB





Twelve Hungry Mammoths - 21-10-2007 00:01

  On Sat, 20 Oct 2007 09:46:16 +0200, Lukasz PUZON Brodowski <puzon@list.pl>
wrote:
> Chcialbym zmienic wartosc podana w argumencie $ARGV[0] na nowa zmienna,
> np.
> jesli uzytkownik poda w argumencie jakis_argument, to chcialbym zamienic
> to
> na $jakis_argument i wyswietlic postawina wczesniej wartosc zmiennej
> $jakis_argument.

jezeli dobrze rozumiem, to chodzi Ci o konstrukcje w rodzaju ${$ARGV[0]}.
przejrzyj perldoc perlreftut.

no i napisz, po co Ci taka kombinacja alpejska. moze to, co chcesz zrobic,
da sie zrobic latwiej i bezpieczniej?

pzdr
szeryf

--
Przemysław ,,Szeryf'' Kowalczyk :: http://szeryf.wordpress.com/




Lukasz PUZON Brodowski - 21-10-2007 00:01

  "Twelve Hungry Mammoths" <someone@microsoft.com> napisał(a):

>
> jezeli dobrze rozumiem, to chodzi Ci o konstrukcje w rodzaju ${$ARGV[0]}.

>
> przejrzyj perldoc perlreftut.
>
> no i napisz, po co Ci taka kombinacja alpejska. moze to, co chcesz zrobic,

>
> da sie zrobic latwiej i bezpieczniej?

Tak, dokladnie o to chodzilo. Zadzialalo idealnie. A potrzebne mi to,
poniewaz mam zestaw zmiennych w postaci
$nazwa_komputera='jego.ip';

$nazwa_komputera wprowadzam jako argument, wiec to co napisales przyda mi
sie aby przyrownac to do odpowiedniej zmiennej i jej wartosci - przy okazji
sprawdzajac czy $nazwa_komputera istnieje. Teoretycznie moznaby to wsadzic
w tablice, ale nie mialbym wtedy "indexu" jakim jest nazwa zmiennej. Troche
to zakrecone, wiec pewnie bedziesz mial lepszy pomysl :)

Jeszcze raz dzieki
Puzon




Vava - 21-10-2007 00:01

  > Tak, dokladnie o to chodzilo. Zadzialalo idealnie. A potrzebne mi to,
> poniewaz mam zestaw zmiennych w postaci
> $nazwa_komputera='jego.ip';
>
> $nazwa_komputera wprowadzam jako argument, wiec to co napisales przyda mi
> sie aby przyrownac to do odpowiedniej zmiennej i jej wartosci - przy
> okazji
> sprawdzajac czy $nazwa_komputera istnieje. Teoretycznie moznaby to
> wsadzic
> w tablice, ale nie mialbym wtedy "indexu" jakim jest nazwa zmiennej.
> Troche
> to zakrecone, wiec pewnie bedziesz mial lepszy pomysl :)

Rozumiem, że masz coś takiego:

#!/usr/bin/perl

$komp1='10.11.155.11';
$komp2='10.11.155.12';
$komp3='10.11.155.13';

print ${$ARGV[0]};

__END__

??

To lepszy będzie hasz ;-)

#!/usr/bin/perl

$komputery = (
komp1 => '10.11.155.11',
komp2 => '10.11.155.12',
komp3 => '10.11.155.13',
);

print $komputery{$ARGV[0]};

__END__

A jeszcze lepiej listę trzymać na zewnątrz skryptu ;-)

Pozdrawiam
--
Vava
Wawrzyniec Żurowski
Victoria vale, et ubique es, suaviter sternutas





Szymon =?iso-8859-2?Q?Sok=F3=B3?= - 21-10-2007 00:01

  On Sat, 20 Oct 2007 18:12:09 +0200, Vava wrote:

> To lepszy będzie hasz ;-)
Święta racja...

> $komputery = (
Tylko tu powinno być %komputery albo zamiast ( należało użyć {
przy czym w tym drugim przypadku ta linia:
> print $komputery{$ARGV[0]};
powinna wyglądać tak:
print $komputery->{$ARGV[0]};

--
Szymon Sokół (SS316-RIPE) -- Network Manager B
Computer Center, AGH - University of Science and Technology, Cracow, Poland O
http://home.agh.edu.pl/szymon/ PGP key id: RSA: 0x2ABE016B, DSS: 0xF9289982 F
Free speech includes the right not to listen, if not interested -- Heinlein H




Lukasz PUZON Brodowski - 23-10-2007 00:01

  Szymon Sokół <szymon@bastard.operator.from.hell.pl> napisał(a):
>> $komputery = (
> Tylko tu powinno być %komputery albo zamiast ( należało użyć {
> przy czym w tym drugim przypadku ta linia:
>> print $komputery{$ARGV[0]};
> powinna wyglądać tak:
> print $komputery->{$ARGV[0]};

Jakie sa roznice pomiedzy obydwoma rozwiazaniami? tylko w skladni?




Szymon =?iso-8859-2?Q?Sok=F3=B3?= - 23-10-2007 00:01

  On Mon, 22 Oct 2007 13:21:03 +0200, Lukasz PUZON Brodowski wrote:

> Szymon Sokół <szymon@bastard.operator.from.hell.pl> napisał(a):
>>> $komputery = (
>> Tylko tu powinno być %komputery albo zamiast ( należało użyć {
>> przy czym w tym drugim przypadku ta linia:
>>> print $komputery{$ARGV[0]};
>> powinna wyglądać tak:
>> print $komputery->{$ARGV[0]};
>
> Jakie sa roznice pomiedzy obydwoma rozwiazaniami? tylko w skladni?

W pierwszym %komputery jest tablicą asocjacyjną (hashem), a w drugim $komputery
jest zmienną skalarną, zawierającą referencję do tablicy asocjacyjnej. Różnice
składniowe wynikają z tego.
--
Szymon Sokół (SS316-RIPE) -- Network Manager B
Computer Center, AGH - University of Science and Technology, Cracow, Poland O
http://home.agh.edu.pl/szymon/ PGP key id: RSA: 0x2ABE016B, DSS: 0xF9289982 F
Free speech includes the right not to listen, if not interested -- Heinlein H




Twelve Hungry Mammoths - 23-10-2007 00:01

  On Mon, 22 Oct 2007 16:39:53 +0200, Szymon Sokół
<szymon@bastard.operator.from.hell.pl> wrote:
>
>> Szymon Sokół <szymon@bastard.operator.from.hell.pl> napisał(a):
>>>> $komputery = (
>>> Tylko tu powinno być %komputery albo zamiast ( należało użyć {
>>> przy czym w tym drugim przypadku ta linia:
>>>> print $komputery{$ARGV[0]};
>>> powinna wyglądać tak:
>>> print $komputery->{$ARGV[0]};
>>
>> Jakie sa roznice pomiedzy obydwoma rozwiazaniami? tylko w skladni?
>
> W pierwszym %komputery jest tablicą asocjacyjną (hashem), a w drugim
> $komputery
> jest zmienną skalarną, zawierającą referencję do tablicy asocjacyjnej.
> Różnice
> składniowe wynikają z tego.

no i przede wszystkim wersja z haszem jest latwiejsza do zrozumienia i
oprogramowania. wersje z referencja nalezy stosowac tylko, gdy nie da sie
inaczej.

pzdr
szeryf

--
Przemysław ,,Szeryf'' Kowalczyk :: http://szeryf.wordpress.com/




lrem - 23-10-2007 00:01

  W poście <op.t0lxr8uhhxnuv2@negative-361apc>,
Twelve Hungry Mammoths nabazgrał:
>>>>> print $komputery{$ARGV[0]};
>>>> powinna wyglądać tak:
>>>> print $komputery->{$ARGV[0]};
>>>
>>> Jakie sa roznice pomiedzy obydwoma rozwiazaniami? tylko w skladni?
>>
>> W pierwszym %komputery jest tablicą asocjacyjną (hashem), a w drugim
>> $komputery
>> jest zmienną skalarną, zawierającą referencję do tablicy asocjacyjnej.
>> Różnice
>> składniowe wynikają z tego.
>
> no i przede wszystkim wersja z haszem jest latwiejsza do zrozumienia i
> oprogramowania. wersje z referencja nalezy stosowac tylko, gdy nie da sie
> inaczej.

A kiedy się nie da? Mi się wydawało, że po prostu przekazywanie
referencji jest szybsze. Są jakieś sytuacje wymuszające skalara?

Supersede: oczywiście miałem na myśli listy vs referencje do tablicy.
Hashy się nie przekazuje.

--
Nie głosuj, bo jeszcze popsujesz cyrk na Wiejskiej!
http://nieglosuj.pl/sukces.html




Szymon =?iso-8859-2?Q?Sok=F3=B3?= - 23-10-2007 00:01

  On Mon, 22 Oct 2007 18:00:07 +0000 (UTC), lrem wrote:

> A kiedy się nie da? Mi się wydawało, że po prostu przekazywanie
> referencji jest szybsze. Są jakieś sytuacje wymuszające skalara?
>
> Supersede: oczywiście miałem na myśli listy vs referencje do tablicy.
> Hashy się nie przekazuje.

Zajrzyj do perldoc perlsub; poszukaj "Pass by Reference".
--
Szymon Sokół (SS316-RIPE) -- Network Manager B
Computer Center, AGH - University of Science and Technology, Cracow, Poland O
http://home.agh.edu.pl/szymon/ PGP key id: RSA: 0x2ABE016B, DSS: 0xF9289982 F
Free speech includes the right not to listen, if not interested -- Heinlein H




=?ISO-8859-2?Q?Zbigniew_Kempczy=F1ski?= - 24-10-2007 00:01

  Użytkownik lrem napisał:

> Supersede: oczywiście miałem na myśli listy vs referencje do tablicy.
> Hashy się nie przekazuje.
^^^^^^^^^^^^^^^^^^^^^^^^^

Sprawdź poniższy przykład.

#!/usr/bin/perl

use Data::Dumper;

sub fn {
my %h = @_;
print Dumper(\%h);
}

my %hsh = (
a => 1,
b => 2,
c => 3,
);

fn(%hsh);

--
=============================
Zbigniew Kempczyński
http://it.marton.pl/wegorz/
=============================




lrem - 24-10-2007 00:02

  W poście <ffka6e$qa2$1@nemesis.news.tpi.pl>,
Zbigniew Kempczyński nabazgrał:
>> Supersede: oczywiście miałem na myśli listy vs referencje do tablicy.
>> Hashy się nie przekazuje.
> ^^^^^^^^^^^^^^^^^^^^^^^^^
>
> Sprawdź poniższy przykład.
>
> #!/usr/bin/perl
>
> use Data::Dumper;
>
> sub fn {
> my %h = @_;
> print Dumper(\%h);
> }
>
> my %hsh = (
> a => 1,
> b => 2,
> c => 3,
> );
>
> fn(%hsh);

Ten hash jest przerabiany na listę, lista przekazywana, a potem
przerabiana na hasha.

--
Nie głosuj, bo jeszcze popsujesz cyrk na Wiejskiej!
http://nieglosuj.pl/sukces.html




=?ISO-8859-2?Q?Zbigniew_Kempczy=F1ski?= - 25-10-2007 00:03

  Użytkownik lrem napisał:

>>>Supersede: oczywiście miałem na myśli listy vs referencje do tablicy.
>>>Hashy się nie przekazuje.

> Ten hash jest przerabiany na listę, lista przekazywana, a potem
> przerabiana na hasha.

Jednak możesz podać hasza jako argument funkcji. Wg mnie obala to Twoją
tezę "haszy się nie przekazuje". To, że rozkłada się to na listę
i składa ponownie ma tu drugorzędne znaczenie. Funkcjonalnie przekazanie
hasza jako argumentu działa (fakt, lepiej przekazać referencję by uniknąć
zbędnego kopiowania).
--
=============================
Zbigniew Kempczyński
http://it.marton.pl/wegorz/
=============================




lrem - 25-10-2007 00:03

  W poście <ffmotj$kae$1@atlantis.news.tpi.pl>,
Zbigniew Kempczyński nabazgrał:
>> Ten hash jest przerabiany na listę, lista przekazywana, a potem
>> przerabiana na hasha.
>
> Jednak możesz podać hasza jako argument funkcji. Wg mnie obala to Twoją
> tezę "haszy się nie przekazuje". To, że rozkłada się to na listę
> i składa ponownie ma tu drugorzędne znaczenie. Funkcjonalnie przekazanie
> hasza jako argumentu działa (fakt, lepiej przekazać referencję by uniknąć
> zbędnego kopiowania).

Ba, takiego hasha można nawet przekazać w jednym skalarze (join)! To
dopiero obala wszystkie podobne tezy! :)

--
Erystyk z zamiłowania...




Vava - 25-10-2007 00:03

  On Wed, 24 Oct 2007 10:41:28 +0200, lrem <lrem@localhost.localdomain>
wrote:

> W poście <ffmotj$kae$1@atlantis.news.tpi.pl>,
> Zbigniew Kempczyński nabazgrał:
>>> Ten hash jest przerabiany na listę, lista przekazywana, a potem
>>> przerabiana na hasha.
>>
>> Jednak możesz podać hasza jako argument funkcji. Wg mnie obala to Twoją
>> tezę "haszy się nie przekazuje". To, że rozkłada się to na listę
>> i składa ponownie ma tu drugorzędne znaczenie. Funkcjonalnie przekazanie
>> hasza jako argumentu działa (fakt, lepiej przekazać referencję by
>> uniknąć
>> zbędnego kopiowania).
>
> Ba, takiego hasha można nawet przekazać w jednym skalarze (join)! To
> dopiero obala wszystkie podobne tezy! :)

Ech... Ale przekazywanie referencji do hasza różni się od przekazywania
samego hasza.
Jak cały kod jest Twój własny, to pół biedy (choć ja po pół roku nigdy nie
pamiętam, jak coś robiłem),
ale jak robisz coś do spółki z kimś innym, czy korzystasz z czyjegoś
modułu, to możesz się zdziwić, że Ci się nagle zmienia coś, co nie powinno
;-)

#!/usr/bin/perl

use strict;
use Data::Dumper;

sub t1 {
my %hash = @_;
foreach my $k (keys %hash) {
$hash{$k}++;
}
}

sub t2 {
my $hash = shift;
foreach my $k (keys %$hash) {
$hash->{$k}++;
}
}

my %t = (a => 1, b => 2, c => 3);

t1(%t);
print Dumper %t;
t2(\%t);
print Dumper %t;
__END__

Pozdrawiam
--
Vava
Wawrzyniec Żurowski
Victoria vale, et ubique es, suaviter sternutas




=?ISO-8859-2?Q?Zbigniew_Kempczy=F1ski?= - 25-10-2007 00:03

  Użytkownik lrem napisał:

> Ba, takiego hasha można nawet przekazać w jednym skalarze (join)! To
> dopiero obala wszystkie podobne tezy! :)
>

Przy założeniu, że łączysz znakiem/łancuchem nie występującym w kluczach
i wartościach. I takim sposobem przypomniał mi się dowcip, jak trzech żydów
Żydów poszło do rabina w kwestii spornej. Pierwszy się wypowiedział - rabin
twierdzi "masz rację", po czym wypowiedział się drugi - "i ty masz rację"
stwierdził rabin. Trzeci - "ależ obaj nie mogą mieć racji". "I ty też masz
rację" stwierdził rabin :)

--
=============================
Zbigniew Kempczyński
http://it.marton.pl/wegorz/
=============================




moldovenu - 25-10-2007 00:03

  Twelve Hungry Mammoths wrote:

> no i przede wszystkim wersja z haszem jest latwiejsza do zrozumienia i
> oprogramowania. wersje z referencja nalezy stosowac tylko, gdy nie da
> sie inaczej.

hehe, ja akurat mam odwrotne podejście - gdy zamiast hashy od razu użyję
ref-hashy, przy tworzeniu dalszych, złożonych struktur kod się upraszcza
jak, za przeproszeniem, w pythonie lub rubym ;)

nieco szerzej opisał to czas temu Steve
http://steve.yegge.googlepages.com/a...languages-perl
zwłaszcza kawałek od "Ot-Nay Oo-Tay Ight-Bray" ;)

Ale dla pojedyńczego hasha "w kontekście admina" to faktycznie bez
znaczenia ;)

adam




lrem - 25-10-2007 00:03

  W poście <op.t0o1ppfqsx85je@valis.domek>,
Vava nabazgrał:
>> Ba, takiego hasha można nawet przekazać w jednym skalarze (join)! To
>> dopiero obala wszystkie podobne tezy! :)
>
> Ech... Ale przekazywanie referencji do hasza różni się od przekazywania
> samego hasza.
> Jak cały kod jest Twój własny, to pół biedy (choć ja po pół roku nigdy nie
> pamiętam, jak coś robiłem),
> ale jak robisz coś do spółki z kimś innym, czy korzystasz z czyjegoś
> modułu, to możesz się zdziwić, że Ci się nagle zmienia coś, co nie powinno
> ;-)

Decyzje o tym, czy ma się zmieniać, powinny zapadać jeszcze przed
implementacją. Zaś samą implementację można popsuć na wiele więcej
sposobów. Acz owszem, operowanie na kopii jest jakimś wyjściem ;)




Vava - 25-10-2007 00:03

  On Wed, 24 Oct 2007 20:17:02 +0200, lrem <lrem@localhost.localdomain>
wrote:

> W poście <op.t0o1ppfqsx85je@valis.domek>,
> Vava nabazgrał:
>>> Ba, takiego hasha można nawet przekazać w jednym skalarze (join)! To
>>> dopiero obala wszystkie podobne tezy! :)
>>
>> Ech... Ale przekazywanie referencji do hasza różni się od przekazywania
>> samego hasza.
>> Jak cały kod jest Twój własny, to pół biedy (choć ja po pół roku nigdy
>> nie
>> pamiętam, jak coś robiłem),
>> ale jak robisz coś do spółki z kimś innym, czy korzystasz z czyjegoś
>> modułu, to możesz się zdziwić, że Ci się nagle zmienia coś, co nie
>> powinno
>> ;-)
>
> Decyzje o tym, czy ma się zmieniać, powinny zapadać jeszcze przed
> implementacją. Zaś samą implementację można popsuć na wiele więcej
> sposobów. Acz owszem, operowanie na kopii jest jakimś wyjściem ;)

No właśnie, ale jak pisałem, to możesz sobie zadecydować, jak sam piszesz
program i jak pamiętasz, co napisana dwa lata temu procedura robi ;-)
Gorzej jak praca jest w grupie, i to takiej, w której część programistów
wpisało sobie w CV perfekcyjną znajmość Perla, która kończy się na
helloworldware ;-)

Pozdrawiam
--
Vava
Wawrzyniec Żurowski
Victoria vale, et ubique es, suaviter sternutas




lrem - 25-10-2007 00:03

  W poście <op.t0p0clgvsx85je@valis.domek>,
Vava nabazgrał:
> No właśnie, ale jak pisałem, to możesz sobie zadecydować, jak sam piszesz
> program i jak pamiętasz, co napisana dwa lata temu procedura robi ;-)
> Gorzej jak praca jest w grupie, i to takiej, w której część programistów
> wpisało sobie w CV perfekcyjną znajmość Perla, która kończy się na
> helloworldware ;-)

Wprowadzać ewidentne suboptymalne rozwiązania w ramach walki
z niekompetencją zespołu? Zdecydowanie nieprzyjemna perspektywa...

--
Sygnaturka zastepcza.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Zwracanie wartości, z funkcji, w funkcji [Js, Ajax] Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ] Insert do tabeli z danych innej tabeli plus dodatkowa wartośćpola (Firebird) "Zmiennicy" - strona internetowa serialu =?ISO-8859-2?Q?Stanis=B3?==?ISO-8859-2?Q?awa_Barei?= [MySql] Jak =?ISO-8859-2?Q?por=F3wna=E6_wynik_zapytania_ze?==?ISO-8859-2?Q?_zmienn=B1=3F?= =?ISO-8859-2?Q?Tworzenie_zmiennych_w_bloku_przechwytywan?==?I SO-8859-2?Q?ia_wyj=B1tk=F3w_-_try?= Ms SQL Server 2000 i błąd przy nie wypełnionej wartościo w polusmalldatetime Jak wyswietlic dane z dwoch tabel gdy dla jednej z nich jest brak jest danej wartosci [pgsql] Zmienna jako pole NEW w trigger pl/pgSQL. [MySQL/PHP] Wyszukiwanie rekordu przez kolumnę wskazaną przez zmienną
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • tejsza.htw.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com