Názory k článku Perličky (5)

  • Článek je starý, nové názory již nelze přidávat.
  • 1. 11. 2002 13:44

    mj (neregistrovaný)

    myslim, ze uzavery predevsim zprehlednuji kod
    ono poouzit neco ve stylu

    if ($debug) {
    $get_addr = &prepare_load_addrs_from_array(@ARGV);
    } else {
    $get_addr = &prepare_load_addrs_from_dhcpconf();
    }

    while ( $addr = &$get_addr ) {
    if ( &is_ftp_active($add) ) {
    # save addr
    }
    }

    je mnohem prehlednejsi a bude to nejspise i rychlejsi nez jine moznosti, nebo se mylim? ... :-)

  • 29. 11. 2002 22:38

    Jenda (neregistrovaný)

    Obavam se, ze to rychlejsi nebude. Snad krome pripadu, ze si pri vytvareni uzaveru neco predpocitate.

    Pokud by vam hodne zalezelo na rychlosti tak bych doporucoval neco jako :

    use constant DEBUG => scalar(@ARGV);
    ...
    sub get_addr {
    if (DEBUG) {
    udelej neco s @ARGV
    } else {
    udelej neco s dhcpconf()
    }
    zbytek kodu
    }

    Optimalizator totiz uz pri kompilaci pozna ktera vetev toho if()u neni potreba a odoptimalizuje ji i ten test.

    Samozrejme pouze v pripade, ze DEBUG je definovano jako konstanta uz pred tim if()em.

  • 1. 11. 2002 14:00

    mj (neregistrovaný)

    #uzavery se sdilenim promennych

    sub prepare_sl {
    my ($last) = @_;
    my ( $rs_s, $rs_l );
    $rs_s = sub {
    if ( $last % 2 ) { $last++ }
    else { $last += 2 };
    print $last."\n";
    };
    $rs_l = sub {
    if ( $last % 2 ) { $last += 2 }
    else { $last ++ };
    print $last."\n";
    };
    return ($rs_s, $rs_l );
    }

    ( $dalsi_sudeA, $dalsi_licheA ) = prepare_sl(57);
    ( $dalsi_sudeB, $dalsi_licheB ) = prepare_sl(27);
    &$dalsi_sudeA(); #58
    &$dalsi_sudeA(); #60
    &$dalsi_licheA(); #61
    &$dalsi_licheB(); #29
    &$dalsi_sudeB(); #30
    &$dalsi_licheA(); #63
    &$dalsi_licheB(); #31

    # PS: neprisel nekdo nato jak vkladat do prispevku
    # na rootu prog. kod? hodilo by se <PRE> a </PRE>
    # nebo aslespon  

  • 6. 11. 2002 14:59

    Petr Grillinger (neregistrovaný)

    Perl nepouzivam, ale zarazila me veta v uvodu clanku: "metoda shora-dolu se neda pouzit na velke projekty..." (volne).

    Metoda shora-dolu je pomerne ustaleny termin pro dekompozici problemu na mensi (dilci) celky, kdy se zacina nejvyssi urovni - tedy tim co chceme ziskat. Postupne pridavame dalsi vrstvy, ktere poskytuji zakladnejsi funkce az se nakonec dostaneme na sluzby poskytovane programovacim jazykem.