ארגומנטים של שורת הפקודה נשלחים לתוכנית Perl באותו אופן כמו בכל שפה אחרת. מערך @ARGV מכיל את ארגומנט שורת הפקודה. אין צורך להשתמש במשתנים גם אם אתה משתמש ב-'use strict'. כברירת מחדל, משתנה זה קיים תמיד וערכים משורת הפקודה ממוקמים אוטומטית בתוך משתנה זה. כדי לגשת לארגומנטים של שורת הפקודה של הסקריפט שלך, אתה רק צריך לקרוא ממערך @ARGV.
Perl מאפשרת שימוש במערך @ARGV כשמות קבצים באמצעות . ה-$ARGV מכיל את שם הקובץ הנוכחי בעת קריאה מ-.
רכיבי מערך @ARGV
מערך @ARGV עובד כמו מערך רגיל. הארגומנט הראשון שלו יהיה $ARGV[0], $ARGV[1] השני וכן הלאה.
דוגמה לטענה של שורת הפקודה של Perl
בוא נראה דוגמה פשוטה להדפסת ארגומנטים של שורת הפקודה. בדוגמה זו, נדפיס הודעת פתיחה עם שם המשתמש בתור הארגומנט משורת הפקודה. אנחנו צריכים שני ארגומנטים של שורת פקודה כשם הפרטי ושם המשפחה של המשתמש.
שלב 1 צור סקריפט welcome.pl במערכת שלך.
#!/usr/bin/perl -w # (1) check for the number of command-line arguments entered $number_args = $#ARGV + 1; if ($number_args != 2) { print 'Wrong entry. Please enter your full name. '; exit; } # (2) if two command line arguments received, $firstName=$ARGV[0]; $lastName=$ARGV[1]; print 'Welcome $firstName $lastName at JavaTpoint. ';
בסקריפט שלמעלה, תחילה הוא יבדוק אם שני ארגומנטים של שורת הפקודה מסופקים או לא. אם לא, זה ייתן שגיאת כניסה שגויה. ואם כן, הוא יעבד את הטיעונים האלה כ-$ARGV[0] ו-$ARGV[1] בהתאמה.
שלב 2 הפעל את הסקריפט במסוף שלך בתור perl welcome.pl כריסטיאן גריי
הערה: לפני מתן פקודה זו, ודא שאתה נמצא בספרייה המכילה את הסקריפט שלך welcome.pl
זה הפלט שתקבל בקונסולה שלך.
שלב 2 הפעל את הסקריפט במסוף שלך בתור perl welcome.pl כריסטיאן
כאן, אנו מעבירים רק ארגומנט אחד משורת הפקודה.
בפלט, אתה יכול לראות הודעת כניסה שגויה להעברת ארגומנט אחד.
שורת הפקודה של Perl דוגמה באמצעות Loop
כעת נריץ לולאה להדפסת הארגומנטים של שורת הפקודה. בדוגמה זו, אתה יכול להזין כמה ארגומנטים שאתה רוצה.
שלב 1 צור סקריפט loop.pl במערכת שלך.
#!/usr/bin/perl $get_args = $#ARGV + 1; print 'Total command line arguments received: $get_args '; foreach $argument (0 .. $#ARGV) { print '$ARGV[$argument] '; }
שלב 2 הפעל את הסקריפט במסוף שלך בתור perl loop.pl a b c d e f g h
תסתכל על הפלט שלמעלה, הוא גם מציג את סך הארגומנטים שהועברו בשורת הפקודה. כאן העברנו 8 טיעונים.
Perl Getopt::Long
אפשרויות שורת הפקודה הפשוטות נעשות באמצעות אפשרות ?s. אפשרויות שורת פקודה מורכבות נעשות באמצעות Getopt::Std ו-Getopt::Long.
Getopt מייצג GetOptions . הוא מעבד את התוכן של @ARGV בהתבסס על התצורה שאנו נותנים לו. הוא מחזיר ערך אמיתי או שקר על סמך העיבוד.
דוגמא:
בדוגמה זו, אנו מקבלים היטב את גיל המשתמש משורת הפקודה.
use strict; use warnings; use 5.010; use Getopt::Long qw(GetOptions); my $x; GetOptions('from=s' => $x) or die 'Usage: $0 --from NAME '; say'According to your age which is $x:'; if ($x >=18) { say 'You are eligible to vote'; }
הכרזנו על משתנה $x אשר יאחסן ערך שהוכנס לתוך --מ מהקונסולה הרגילה. ה מ=s מכריז על פרמטר שורת הפקודה בשם --מ עם חוט אחריו. הוא ממופה בהמשך למשתנה $x. הנטוי האחורי () פירושו שאנו מעבירים הפניה למשתנה.
הסקריפט הזה יעבור ל ה חלק רק כאשר נריץ את הסקריפט הזה על ידי העברת משהו שנראה כמו שם פרמטר ומתחיל ב-a (-) אך אינו מוצהר בתסריט זה.
כעת, נריץ את התוכנית הזו.
תְפוּקָה:
תסתכל על הפלט, לאחר הזנת גיל בקונסולה, קיבלנו את הפלט שלמעלה.