[PERL] HexToAscii e AsciiToHex, problema ciclo IF

Stato
Discussione chiusa ad ulteriori risposte.

The Massakretor

Utente Electrum
8 Agosto 2007
292
12
0
100
Codice:
#!/usr/bin/perl
    ##===============================================================
    ##
    ## Author: The Massakretor
    ##
    ## Description: Convert an ascii string to a hexidecimal string
    ## an hex string to an ascii string.
    ##
    ##===============================================================

print "Scrivi se vuoi convertire AsciToHex o HexToAscii ( ath/hta )";
$var = <>;
if ($var =~ /ath/) { 
print "Inserisci il Valore da convertire in hex\n";
$ascii = <>;
chomp $ascii;
@Hex = unpack("H*", "$ascii");
print "Il valore convertito è @Hex\n";
 }

if ($var =~ /hta/) {
print "Inserisci il valore da convertire in Ascii\n";
$hex = <>;
chomp $hex;
@Ascii = pack("H*", $hex);
print "Il valore convertito in hex è @Ascii\n";
 }

È la prima volta che uso il ciclo if in perl, dovrei mettere, ed in totale :D per confrontare 2 stringhe si usa il comando eq, ma perchè non funziona allora? e elsif non si usa in perl?

Scusate la stupidaggine del codice..

EDIT: Risolto :D
 
devi chomparla, altrimenti ti calcola anche il ritorno a capo

edit: esempio, ti conta "ath\n", che è diverso da "ath"
 
Codice2:
vari problemi risolti, ora traduce AsciiToHex, perfettamente....
L' HexToAscii non mi stampa a schermo la il decode
Codice:
#!/usr/bin/perl
    ##===============================================================
    ##
    ## Author: The Massakretor
    ##
    ## Description: Convert an ascii string to a hexidecimal string
    ## an hex string to an ascii string.
    ##
    ##===============================================================

print "Scrivi se vuoi convertire AsciToHex o HexToAscii ( ath/hta )";
$var = <>;
if ($var =~ /ath/) { 
print "Inserisci il Valore da convertire in hex\n";
$ascii = <>;
chomp $ascii;
@Hex = unpack("H*", "$ascii");
print "Il valore convertito è @Hex\n";
 }

if ($var =~ /hta/) {
print "Inserisci il valore da convertire in Ascii\n";
$hex = <>;
chomp $hex;
@Ascii = pack("H*", $hex);
print "Il valore convertito in hex è @Ascii\n";
 }
 
ShuraBozz ha detto:
è praticamente uguale, meglio <>, altro che python :asd:

"perl è vicino al parlato" fonte: ogni guida.....

Perl: <> (d'altronde tutti dicono minore-maggiore nel parlato)
Python: input() (mi sembra + diretto)

:confused:
 
Malex ha detto:
ShuraBozz ha detto:
è praticamente uguale, meglio <>, altro che python :asd:

"perl è vicino al parlato" fonte: ogni guida.....

Perl: <> (d'altronde tutti dicono minore-maggiore nel parlato)
Python: input() (mi sembra + diretto)

:confused:

se la vogliamo mettere così c'è anche la funzione read...:p
Codice:
read STDIN, $var, [length];
 
vabbé dai, la mia era una disgressione inutile, ho precisato il <STDIN> perché secondo quanto letto in giro è la scrittura migliore per questioni di standard, poi magari mi sbaglio...
 
Stato
Discussione chiusa ad ulteriori risposte.