Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
sõnum ![Teata moderaatorile Teata moderaatorile](./images/icon_move_w.gif) |
|
LauriKaks
HV kasutaja
liitunud: 09.04.2003
|
23.02.2009 13:47:37
Massiivi elementide vahetamine perlis |
|
|
Müstika?
elementaarne jupp:
#!/usr/bin/perl
open(buf, $ARGV[0]) || die("faili $ARGV[0] ei ole!");
@a=<buf>;
print "@a \n";
@a[1,2]=@a[2,1];
print "@a \n";
|
avada käsureal antud teksti (tühikutega eraldatud sõnad), lugeda see elementide kaupa massiivi ja vahetada massiivis 2 elementi omavahel.
Aga miks need ei vahetu?? Mõlemad 'print "@a \n";' laused trükivad ühte ja sama. Otse elemente massiivi pannes vahetamine töötab.
|
|
Kommentaarid: 16 loe/lisa |
Kasutajad arvavad: |
![](./images/komment/img_10_1.gif) ![](./images/komment/img_10_0.gif) ![](./images/komment/img_10_2.gif) |
:: |
0 :: |
0 :: |
16 |
|
tagasi üles |
|
![](templates/HinnaVaatlus/imagesHV/spacer.gif) |
Smith
HV veteran
![Smith Smith](https://foorum.hinnavaatlus.ee/images/avatars/upload/e95f770ac4fb91ac2e4873e4b2dfc0e6.png)
liitunud: 25.08.2002
|
23.02.2009 14:13:23
|
|
|
Miks sa üldse arvad, et = abil midagi vahetada saab?
_________________ Only the Central Computer knows the truth |
|
Kommentaarid: 158 loe/lisa |
Kasutajad arvavad: |
![](./images/komment/img_10_1.gif) ![](./images/komment/img_10_0.gif) ![](./images/komment/img_10_2.gif) |
:: |
0 :: |
1 :: |
145 |
|
tagasi üles |
|
![](templates/HinnaVaatlus/imagesHV/spacer.gif) |
LauriKaks
HV kasutaja
liitunud: 09.04.2003
|
23.02.2009 14:27:21
|
|
|
Smith kirjutas: |
Miks sa üldse arvad, et = abil midagi vahetada saab? |
http://docstore.mik.ua/orelly/perl/learn/ch03_04.htm
seal on näide '@fred[0,1] = @fred[1,0]; # swap the first two elements'
Aga see polegi tähtis. Tuleb välja, et isegi kirjutades '$a[1]=4' ei muutu selles massiivis midagi.
Kas massiiv on loodud valesti? Kas on muu võimalus üherealisest tekstifailist elementide massiivi panemiseks?
EDIT: eks. Leidsin vea.
eelmises näites @a sisaldab elemente (rida1 rida2) jne. @an=split(" ", @a[0]) on lahendus.
|
|
Kommentaarid: 16 loe/lisa |
Kasutajad arvavad: |
![](./images/komment/img_10_1.gif) ![](./images/komment/img_10_0.gif) ![](./images/komment/img_10_2.gif) |
:: |
0 :: |
0 :: |
16 |
|
tagasi üles |
|
![](templates/HinnaVaatlus/imagesHV/spacer.gif) |
Smith
HV veteran
![Smith Smith](https://foorum.hinnavaatlus.ee/images/avatars/upload/e95f770ac4fb91ac2e4873e4b2dfc0e6.png)
liitunud: 25.08.2002
|
23.02.2009 14:38:41
|
|
|
Vaat siis, tuleb välja, et perl ongi selline imelik. Aga viga jah selles et kogu jama oli a[0] sees.
_________________ Only the Central Computer knows the truth |
|
Kommentaarid: 158 loe/lisa |
Kasutajad arvavad: |
![](./images/komment/img_10_1.gif) ![](./images/komment/img_10_0.gif) ![](./images/komment/img_10_2.gif) |
:: |
0 :: |
1 :: |
145 |
|
tagasi üles |
|
![](templates/HinnaVaatlus/imagesHV/spacer.gif) |
cannuman
HV vaatleja
liitunud: 05.06.2007
|
23.05.2009 12:45:38
|
|
|
Tervitus.
Probleem järgmine. Vaja kontrollida veebiaadressi korrektsust.
Tahan testida, kas "://www." esineb vaid ühe korra...
Proovisin kahte variant:
if($line=~/:\/\/www.{1}/)
i($line=~m#://www.{1}#)
Mõlemad tagastavad tagastavad true ka siis kui "://www." mitu korda esineb...Mis ma valesti teen?
Aitäh
|
|
Kommentaarid: 3 loe/lisa |
Kasutajad arvavad: |
![](./images/komment/img_10_1.gif) ![](./images/komment/img_10_0.gif) ![](./images/komment/img_10_2.gif) |
:: |
0 :: |
0 :: |
3 |
|
tagasi üles |
|
![](templates/HinnaVaatlus/imagesHV/spacer.gif) |
priitr
HV kasutaja
liitunud: 17.06.2004
|
23.05.2009 13:56:58
|
|
|
cannuman kirjutas: |
Tervitus.
Probleem järgmine. Vaja kontrollida veebiaadressi korrektsust.
Tahan testida, kas "://www." esineb vaid ühe korra...
Proovisin kahte variant:
if($line=~/:\/\/www.{1}/)
i($line=~m#://www.{1}#)
Mõlemad tagastavad tagastavad true ka siis kui "://www." mitu korda esineb...Mis ma valesti teen?
Aitäh |
Sa küsid perlilt, kas leidub koht stringis, kus oleks ://www ja veel üks suvaline sümbol.
Pane sulud ümber otsitavale fraasile enne {..}. A kui sa tahad teada, mitu korda üldse otsitav fraas stringis esineb, siis midagi sellist:
echo "https://www.hinnavaatlus.ee" | perl -ne '$arv++ while /:\/\/www\./g; print $arv; '
_________________ Tšudes ne bõvajet. |
|
Kommentaarid: 27 loe/lisa |
Kasutajad arvavad: |
![](./images/komment/img_10_1.gif) ![](./images/komment/img_10_0.gif) ![](./images/komment/img_10_2.gif) |
:: |
0 :: |
0 :: |
27 |
|
tagasi üles |
|
![](templates/HinnaVaatlus/imagesHV/spacer.gif) |
andre85
HV vaatleja
liitunud: 10.09.2006
|
23.05.2009 19:10:01
|
|
|
cannuman kirjutas: |
Tervitus.
Probleem järgmine. Vaja kontrollida veebiaadressi korrektsust.
Tahan testida, kas "://www." esineb vaid ühe korra...
Proovisin kahte variant:
if($line=~/:\/\/www.{1}/)
i($line=~m#://www.{1}#)
Mõlemad tagastavad tagastavad true ka siis kui "://www." mitu korda esineb...Mis ma valesti teen?
Aitäh |
Proovi nii:
@matches = $line=~/:\/\/www\./) ;
if(@matches == 1) {
...
}
_________________ andres |
|
Kommentaarid: 8 loe/lisa |
Kasutajad arvavad: |
![](./images/komment/img_10_1.gif) ![](./images/komment/img_10_0.gif) ![](./images/komment/img_10_2.gif) |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
![](templates/HinnaVaatlus/imagesHV/spacer.gif) |
cannuman
HV vaatleja
liitunud: 05.06.2007
|
24.05.2009 14:10:43
|
|
|
suured tänud
|
|
Kommentaarid: 3 loe/lisa |
Kasutajad arvavad: |
![](./images/komment/img_10_1.gif) ![](./images/komment/img_10_0.gif) ![](./images/komment/img_10_2.gif) |
:: |
0 :: |
0 :: |
3 |
|
tagasi üles |
|
![](templates/HinnaVaatlus/imagesHV/spacer.gif) |
2ndalpha
HV kasutaja
![2ndalpha 2ndalpha](https://foorum.hinnavaatlus.ee/images/avatars/upload/1dab5ce92d6aab103884f41f9f0b6967.jpg)
liitunud: 03.11.2004
|
31.05.2009 11:25:05
|
|
|
UT Perli kursus nii keeruline nüüd ka ei ole ju:D
|
|
Kommentaarid: 23 loe/lisa |
Kasutajad arvavad: |
![](./images/komment/img_10_1.gif) ![](./images/komment/img_10_0.gif) ![](./images/komment/img_10_2.gif) |
:: |
0 :: |
0 :: |
22 |
|
tagasi üles |
|
![](templates/HinnaVaatlus/imagesHV/spacer.gif) |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|