Schrift
[thread]11296[/thread]

Term::ReadKey: Password unkenntlich machen

Leser: 2


<< >> 9 Einträge, 1 Seite
Gast Gast
 2008-02-14 12:23
#105875 #105875
Hallo zusammen,

ich will bei einer Passwordeingabe, das Password unkenntlich machen mittels Term::ReadKey. Leider funktioniert das bei mir nicht so wie bei CPAN beschrieben:

Mit folgenden Codeausschnitt hab ich es versucht:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
use Term::ReadKey;

$username = <STDIN>;
chomp($username);
      
print "\nEnter Mantis-password: \n";
ReadMode noecho;   # 2 Just works under DOS-Konsole, not under ECLIPSE IDE
   
$passwd = <STDIN>;
chomp($passwd);
    
ReadMode restore;  # Just works under DOS-Konsole, not under ECLIPSE IDE


Fehlermeldung lautet:

Can't locate object method "ReadMode" via package "noecho" (perhaps you forgot to load "noecho"?) at ....


Wenn ich statt noecho "2" und statt restore "0" verwende, kann ich das file nicht mal kompilieren. Kann mir einer helfen?

Danke schon mal im Voraus,

Basti
renee
 2008-02-14 12:45
#105878 #105878
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
setz noecho etc in "
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
renee
 2008-02-14 12:46
#105879 #105879
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn es unter DOS klappt und nicht unter Eclipse, dann ist das ein Problem von Eclipse!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2008-02-14 13:08
#105883 #105883
Unter Dos geht es seltsamerweise nur, wenn ich beim Aufruf das Modul direkt angebe:

Code (perl): (dl )
 Term::ReadKey::ReadMode noecho; 


... oder das Modul innerhalb der Unterfunktion deklariere:
Code (perl): (dl )
1
2
3
4
5
sub get_mantis_status {
 use Term::ReadKey;
 ...

}



Wenn ich das Modul global deklariere kommt die o.g. Fehlermeldung..
pq
 2008-02-16 01:59
#105954 #105954
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
du musst die funktion ReadMode importieren.
wenn du "use Term::ReadKey" in einem package machst und in einem
anderen package die funktion ReadMode benuten willst, wird das nicht gehn, da
musst du entweder mit dem vollen namen auf die funktion zugreifen oder eben
mit use importieren.
zumindest nehme ich von der fehlermeldung her an, dass das bei dir der grund
sein könnte.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
renee
 2008-02-16 11:12
#105959 #105959
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
ReadMode steht in @EXPORT, so dass man da eigentlich nix extra angeben muss...

@Gast: Bei "use" ist es eigentlich unerheblich, *wo* Du das stehen hast, da das auf jeden Fall zur Compile-Zeit und nicht zur Laufzeit passiert! Machst Du es vielleicht so wie pq angedeutet hat, dass Du das in unterschiedlichen packages machst?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pq
 2008-02-16 13:11
#105969 #105969
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
renee+2008-02-16 10:12:06--
ReadMode steht in @EXPORT, so dass man da eigentlich nix extra angeben muss...

ich hab auch nichts anderes behauptet!
aber wie soll denn was importiert werden, wenn das "use" in einem ganz anderen
package steht.
bitte lies meinen beitrag nochmal etwas genauer. ich habe nirgendwo gesagt, dass
die funktion ReadMode explizit importiert werden muss.
Quote
@Gast: Bei "use" ist es eigentlich unerheblich, *wo* Du das stehen hast, da das auf jeden Fall zur Compile-Zeit und nicht zur Laufzeit passiert! Machst Du es vielleicht so wie pq angedeutet hat, dass Du das in unterschiedlichen packages machst?

genau das meinte ich ja. ich kann mir den fehler eben nur damit erklären, dass das in
verschiedenen packages stattfindet, aber das habe ich ja erwähnt.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
sid burn
 2008-02-16 18:34
#105986 #105986
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
IO::Prompt ist auch sehr nett für solche eingaben:

Code (perl): (dl )
1
2
3
4
use IO::Prompt;
my $password = prompt 'Password: ', -echo => '*';

print "[$password] eingegeben.\n";
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
Strat
 2008-02-19 12:17
#106094 #106094
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
IO-Prompt kann ich nur sehr begrenzt empfehlen. Obwohl es sich problemlos unter Windows installieren laesst (z.B. Activestate) und alle Tests durchlaufen, läuft es nicht, weil es unter Windows /dev/tty einfach nicht gibt. Ich habe es vor einigen Jahren in RT eingetragen und auch Damian eine E-Mail mit einem weiteren Test geschickt, der genau das testet, aber ist seitdem nichts passiert. Deshalb lasse ich da lieber die Finger weg.

Für Linux/Unix sieht es brauchbar aus...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 9 Einträge, 1 Seite



View all threads created 2008-02-14 12:23.