אתה נמצא כאן יסודות השפה  »  פורמטים  »  שינוי ברירות המחדל עבור פורמטים

שינוי ברירות המחדל עבור פורמטים

אורך הדף ה defaulti -י הוא 60 שורות. נניח שבאותו קובץ לפני הדפסת הפורמט הדפסנו כמה שורות. עתה על הדף הנוכחי שלנו נותרו פחות שורות פנויות עבור הדפסת הפורמט.
לכן נרצה לשנות את המספר ה default -י .
ראינו אופרטורים שמשתמשים בערכי ברירת מחדל. למשל: write ו print ללא פרמטרים
יפנו ל STDOUT. זה לא מדוייק... הפניה תהיה ל: currently selected file handle
ביוניקס יש files system שממספרת כל קובץ באשר הוא.
קובץ ביוניקס יכול להיות גם התקן כמו מדפסת.
בכל מקרה, לכל קובץ יש מספר file descriptor למשל 1 מייצג את ה STDOUT
ולכן כשה print פונה ל currently selected file handle ניגשים לערך שהוא מייצג באותו רגע,
ואם ערכו הוא 1 כברירת מחדל אז הוא יפנה ל STDOUT.
ניתן לשנות את הערך שב currently selected file handle למספר קובץ אחר או למשתנה סקלרי המכיל מספר קובץ חדש או שם קובץ, כארגומנט. ברגע שהשינוי נעשה - כל הפעולות העתידיות ישתנו בהתאם.

print "I love perl\n";
/*זה כמו לכתוב "print STDOUT "I love perl\n*/

select (FILE1); # עתה קובץ זה יהיה בברירת המחדל שלנו
print "I love perl\n";
/*זה כמו לכתוב "print FILE1 "I love perl\n*/

ה select הזה תקף עד ה select הבא. צריך להיזהר מאוד בקריאה לסאברוטינות המשנות
את ה currently selected file handle . אם הם ישנו את ערכי ברירת המחדל ללא שמירתם לשם שחזור מאוחר יותר, בסוף הסאברוטינה, אזי בהמשך התכנית אנו עלולים להמשיך להשתמש בערכים שהסאברוטינה דרסה עם ערכים חדשים, ולא להיות מודעים לכך.
הקוד הבא שומר את ערכי ברירת המחדל הישנים, משנה את ברירת המחדל, ולאחר מכן מחזיר את הערכים המקוריים בחזרה:

$old = select (NEWFILE);
print "this goes to NEWFILE \n";
select ($old);
/*שחזור ערכי ברירת המחדל הקודמים*/









להוספת תגובה, אנא התחברו לדרכונט.