PERL!!! ו USERKEY.... עזרה!!!

jinji0

New member
PERL!!! ו USERKEY.... עזרה!!!

יש לי קוד שמקבל הוראה לעצור לולאה באמצעות
$SIG{INT} = \&handler; # Installing singal handler​
והלולאה:
while ($sleep-- > 0 && $sighit == 0) {​
העניין הוא שכאשר אני לוחץ Ctrl+C זה עוצר את הלולאה וממשיך בריצה והכל טוב ויפה. אך אם אני מריץ את הסקריפט הזה מתוך סקריפט אחר, כלומר:
SYSTEM("perl sleep.pl");​
ומנסה לעצור את הלולאה עם Ctrl+C זה יוצא לי לגמרי מהתוכנית. כלומר מהסקריפט הראשי שמריץ בתוכו את הסקריפט של SLEEP. ולכן הלחצן של Ctrl+C לא מתאים לי פה ויש לי צורך בכפתור שאני קובע... מכירים אפשרות אחרת לקבל סימן מהמקלדת בליצת כפתור אחת? תודה, נדב
 

annefan

New member
שתי הצעות

הפתרון שנתתי לך בזמנו היה "האקרי" בהגדרה. גם כי הוא לא בדיוק מה שביקשת, גם כי נושא הסיגנלים בפרל, להבדיל מ-C, אינו מוגדר היטב וגם כי מה שביקשת לא כל כך שייך לפרל אלא לטרמינל שאתה עובד ממנו. לכן: א. תתחיל לחפש בגוגל (בעיקר בקבוצות דיון). ב. תרשם לרשימות דוא"ל של פרל בארץ, ותשאל שם. (http://www.perl.org.il/mailing_lists.html) ג. תנסה להקיף את קריאת system שלך ב:
$SIG{INT} = 'IGNORE'; system("perl sleep.pl"); $SIG{INT} = 'DEFAULT';​
אין לי מושג אם זה יעבוד, אבל תנסה.
 
למעלה