Perl, znaky nad 127 v ASCII

Sekcia: Programovanie 03.01.2014 | 17:50
Avatar listrdave Linux  Používateľ

Ahoj, pri jednom programe v perli pracujem s 3 znakmi á,é,í. Vstup ziskam standardne <STDIN> do premennej $input. Ten sa snazim prechadzat po znakoch a porovnavat s maticou znakou. To spravim tak ze si $input premenim cez split("", $input) na @array. A tu mam prave problem, pretoze aj ked matica obsahuje znaky á,é,í tak dane pole @array uz nie. Tam je prazdny znak resp nieco ine (myslim nejaky biely znak). Tym padom nenastane zhoda znakov.

Neviete mi povedat ze preco to robi?

Pripadne ako dany problem prekonat. Problem je ze tie znaky su nutne pre dany program a nemozem ich nahradit.

    • RE: Perl, znaky nad 127 v ASCII 03.01.2014 | 22:14
      Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

      V Perl som nenapísal roky ani riadok, ale to bude problém v tom že nepoužívaš UTF-8.

      Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
      • RE: Perl, znaky nad 127 v ASCII 04.01.2014 | 01:16
        Avatar wamba   Návštevník

        jak píše bedňa interní reprezentace znaků v Perl-u není v utf8, tohle by mohlo vyřešit problém

        binmode( STDIN, ":utf8" );
        my @a=split //, <>;
        print scalar @a;
        popř.

        use utf8; 
        my $a= <>; 
        utf8::decode( $a ); 
        my @a=split //, $a; 
        print scalar @a;
        
    • RE: Perl, znaky nad 127 v ASCII 04.01.2014 | 02:57
      Avatar listrdave Linux  Používateľ

      Dakujem za rychle odpovede. Pomohly mi vyriesit moj problem :)