- Autóhifi
- Egyre gyorsabban ügyködik saját HBM memóriáján Kína
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Fejhallgató erősítő és DAC topik
- SSD kibeszélő
- Kormányok / autós szimulátorok topicja
- Milyen videókártyát?
- HiFi műszaki szemmel - sztereó hangrendszerek
- Vezetékes FÜLhallgatók
- Azonnali alaplapos kérdések órája
Hirdetés
-
Toyota Corolla Touring Sport 2.0 teszt és az autóipar
lo Némi autóipari kitekintés után egy középkategóriás autót mutatok be, ami az észszerűség műhelyében készül.
-
Augusztustól nagyot változik a Shein élete
it Onnantól kezdve lesz a platformra érvényes az EU-ban a DSA, így számos kötelezettséget vesz a vállára a Shein.
-
Modern monitorokra köthető 3dfx Voodoo kártya a fészerből
ph Az eredeti VSA-100 lapkára épülő megoldást két hobbista fejleszti, és úgy fest, hogy hamarosan révbe érnek.
Új hozzászólás Aktív témák
-
Mijo
tag
Gondolom már nem aktuális, de jól esett kitalálni a megoldást:
#!/usr/bin/perl
use strict;
my @input = (
'1.+Béla',
'Örök+Eutanázia+Roberta',
'Kiss+Miska+András',
'Aaa+Aaa',
);
sub def_k {
shift =~ m/\+([^+]+)/;
return $1 || "";
}
my @output =
#map { $_->{'o'}}
sort { $a->{'k'} cmp $b->{'k'} }
map +{ 'o'=>$_, 'k'=> def_k($_) }, @input;
foreach my $o (@output) {
#print join( "\n", @output );
print $o->{'k'}.' -- '.$o->{'o'}."\n";
}Az alkalmazott ötlet a http://en.wikipedia.org/wiki/Schwartzian_transform. A két kommentelt sor a teszteléshez van, élesben az első map veszi ki az eredeti stringeket a hashekből.
Remélem valakinek még hasznos lesz!
Üdv: Mijo''Mit csinálnak a Windows gépek klaszterben? Hát egymás reset gombjait nyomkodják mikor másik elszáll...'' by Xebi@sg.hu
-
Mijo
tag
Szia!
Első tanács, használj objektumokat, pl. ezt:
http://search.cpan.org/~cook/Device-SerialPort-1.002/SerialPort.pm
Gondolom van még számos a CPAN-on, ami a soros portot kezeli.A getc leírása szerint, ez a függvény nem alkalmas a karakterenkénti olvasásra, mert entert vár hozzá, ahogy írtad is.
Meg lehetne próbálni a különböző olvasó függvényeket: sysread, read,...létezik karakter típusú változó, amivel mindig továbbmenne ?
Konkrétan karakter típus nincs. Skalár van, ami tárolhat egy vagy több karaktert (stringet), egész vagy tört számot (integer, float, ...), meg egyebeket (objektumok, referenciák,...), de ezek között nincs éles határ, mint C-ben.
A kérdésed abból a szempontból rossz, hogy nem a változóddal mondod meg a függvénynek, hogy mikor és mivel térjen vissza.Üdv: Mijo
''Mit csinálnak a Windows gépek klaszterben? Hát egymás reset gombjait nyomkodják mikor másik elszáll...'' by Xebi@sg.hu
-
Mijo
tag
Szia!
Ha a számok kellenek, akkor ezt a reguláris kifejezést tudom javasolni:
$sor =~ m/^[^\d]*(\d{3})/;
$szam = $1;Ha a tényleg a pozíció érdekel:
$sor =~ m/^([^\d]*)\d{3}/;
$poz = length( $1 );És ezt lehet kombinálni is.
$sor =~ m/^([^\d]*)(\d{3})/;
$poz = length( $1 );
$szam = $2;Ajánlott olvasmány, ha Perlben sztringeket kell szabni-varrni:
http://perldoc.perl.org/perlre.htmlÜdv: Mijo
''Mit csinálnak a Windows gépek klaszterben? Hát egymás reset gombjait nyomkodják mikor másik elszáll...'' by Xebi@sg.hu
-
Mijo
tag
Azok a reguláris kifejezésből kapják az értéket, a ( és ) közötti részeket veszik fel.
$str = 'abcdef';
$str =~ m/(...)(...)/;
print $1; # 'abc'
print $2; # 'def'Amit linkeltem doksi oldal szépen leírja az összes lehetőséget. Ha magyarul szeretnéd inkább és nem ilyen mélységekben, ezt nézd meg:
http://nyelvek.inf.elte.hu/leirasok/Perl/Üdv: Mijo
''Mit csinálnak a Windows gépek klaszterben? Hát egymás reset gombjait nyomkodják mikor másik elszáll...'' by Xebi@sg.hu
-
Mijo
tag
Kezdetnek ezt a cikket, cikksorozatot megnézhetnéd, elég jól magyarázza az alapokat.
http://prog.hu/cikkek/443/Mintaillesztesek.htmlHa biztos vagy abban, hogy tab szeparált a sorod, ezt is használhatod:
$orszagnev = "USA Amerikai Csendes-óceáni szigetek 581 UMI UM ISO 3166-2:U";
chomp( $orszagnev );
@rekordok = split( /\t/, $orszagnev );
print "$rekordok[0]\n";Üdv: Mijo
''Mit csinálnak a Windows gépek klaszterben? Hát egymás reset gombjait nyomkodják mikor másik elszáll...'' by Xebi@sg.hu
-
Mijo
tag
Szia!
Milyen struktúrában található az adatod?Tömb esetén mondjuk legyen ilyen:
$data = [
[ 'A', '2012.08.24. 10:00' ],
[ 'B', '2012.08.24. 08:00' ],
[ 'C', '2012.08.24. 12:00' ],
];Ezután szépen átalakítjuk:
my @sorted = sort { $a->[1] cmp $b->[1] } @$data;
Ez alap esetben szövegeket hasonlít össze, ha nem ilyen szép az időformátumod akkor érdemes egy függvényhívással ilyenre alakítani, ami a fenti linken a map { } @data rész lenne.
my @sorted = map { $_->[1] } # visszavesszük az eredeti rekordot
sort { $a->[0] cmp $b->[0] } # rendezünk timstamp szerint
map { [ make_timestamp( $_->[1] ), $_ ] } # elkészítjük a [ timestamp, [eredeti rekord] ] struktúrát
@$data; # bemenetRemélem ennek segítségével sikerül megoldani, de kérdezz bátran, ha elakadasz!
Üdv: Mijo''Mit csinálnak a Windows gépek klaszterben? Hát egymás reset gombjait nyomkodják mikor másik elszáll...'' by Xebi@sg.hu
-
Mijo
tag
Szia!
Ha ilyen bonyolult az adatok kinyerése, talán inkább előbb írjad ki egy fájlba, majd a Tie:ile modullal nyisd meg a fájlt, és rendezd a fenti módszerrel. Lehet egy kis tesztelést igényel, hogy mekkora cache-t kapjon a modul, hogy a jellemzően előforduló fájlmérettel gyorsan megbírkózzon, és ne kelljen a vinyóra pakolni folyamatosan.
Amit még tehetsz, hogy egyből Tie:ile-ba pakolod az adatokat, majd a végén rendezel újabb megnyitás nélkül.Üdv: Mijo
''Mit csinálnak a Windows gépek klaszterben? Hát egymás reset gombjait nyomkodják mikor másik elszáll...'' by Xebi@sg.hu
-
Mijo
tag
Szia!
Javaslom a non capturing groupot: (?:pattern)
Üdv: Mijo
#!/usr/bin/perl
use strict;
use warnings;
my @tests = (
'#0546NNN124:CH/FT0/FM2 RS ok',
'#0546NNN124:CH/FT2 RS ok',
);
for my $test ( @tests ) {
if ( $test =~ m!^
(\#0546NNN124:CH/FT\d+
(?:/FM\d+)?
)
\s+
RS
\s+
(\S+)
\s*
$!ix
) {
print "Match: code=[".$1."] status=[".$2."]\n";
} else {
print "No match: [". $test ."]\n";
}
}./test.pl
Match: code=[0546NNN124:CH/FT0/FM2] status=[ok]
Match: code=[0546NNN124:CH/FT2] status=[ok]''Mit csinálnak a Windows gépek klaszterben? Hát egymás reset gombjait nyomkodják mikor másik elszáll...'' by Xebi@sg.hu
-
Mijo
tag
Szia!
Ez a bug 2-3 éves. Nem lett kijavítva valami frissebb verzióban?
Van arra lehetőség, hogy CPAN-ról letöltöd a tar.gz-t, és kézzel cseréled ki, aztán ráfrissítesz a Perl modulokra, hogy minden up to date legyen?Egyébként keress ezekre a sorokra:
sub my_dflt_prompt
sub my_yn_prompt
sub my_prompt_loopLesz ezekben a függvényekben "prompt" függvényhívás, azok elé kell várhatóan betenni ezt:
$prompts{$item} = "<missing prompt> $item";
Persze ha egy rendes diff-et tett volna be, sokkal egyszerűbb lenne...
Üdv: Mijo[ Szerkesztve ]
''Mit csinálnak a Windows gépek klaszterben? Hát egymás reset gombjait nyomkodják mikor másik elszáll...'' by Xebi@sg.hu
-
Mijo
tag
Hiányolja a modult a két felsorolt útvonalból (@INC tartalma).
Nézzük meg, van-e ilyen fájl egyáltalán a rendszeren!
find / -name 'ReadLine.pm' 2>/dev/nullHogyan telepítetted a Perlt?
Elvileg ilyen hibának nem lenne szabad megjelenni a CPAN modul használatakor, mert vagy az alap Perlhez adott modulokat használja, vagy van fall back módszere.Mi a végső cél, amihez a Perl kell?
Ennyire nem bonyolult a Perl telepítése, lásd Perlbrew.
Ha csak frissebb Perlt szeretnél, próbáld meg ezzel, bár egy routeren lehet nem lesz elég hely hozzá, de lehet van külső tárhelyed. Így a rendszer Perl érintetlen maradhat.Üdv: Mijo
''Mit csinálnak a Windows gépek klaszterben? Hát egymás reset gombjait nyomkodják mikor másik elszáll...'' by Xebi@sg.hu
-
Mijo
tag
Szia!
A suttyó megoldást alább láthatod:my ($acknowledge, $error_number, $error_text);
my %net_ucp_config = (
SMSC_HOST => '111.111.111.111',
SMSC_PORT => 2222,
SENDER_TEXT => '+36111111111',
WARN => 1,
FAKE => 0
);
$emi = Net::UCP->new( %net_ucp_config )
|| Net::UCP->new( %net_ucp_config )
|| Net::UCP->new( %net_ucp_config )
|| die( "Failed to create SMSC object ".$! );
$emi->open_link() || die($!);Ha általánosan kell ez az ismétlés, lehet valami ilyennel próbálkozni:
sub retry_net_ucp {
my $obj = shift;
my $method = shift;
$obj->$method( @_ )
|| $obj->$method( @_ )
|| $obj->$method( @_ )
|| die "Error during $method on $object :".$!;
}Üdv: Mijo
''Mit csinálnak a Windows gépek klaszterben? Hát egymás reset gombjait nyomkodják mikor másik elszáll...'' by Xebi@sg.hu
Új hozzászólás Aktív témák
- Autóhifi
- Napelem - 100%-os támogatású pályázat
- Yettel topik
- Egyre gyorsabban ügyködik saját HBM memóriáján Kína
- Pécs és környéke adok-veszek-beszélgetek
- Vodafone mobilszolgáltatások
- Android alkalmazások - szoftver kibeszélő topik
- Digitális detox a Nokiától
- Kínai, és egyéb olcsó órák topikja
- Politika
- További aktív témák...