PERL(1)

الاسم
بيرل - مفسر لغة بيرل 5

موجز
perl [ -sTtuUWX ]
        [ -hv ] [ -V[:configvar] ]
        [ -cw ] [ -d[t][:debugger] ] [ -D[number/list] ]
        [ -pna ] [ -Fpattern ] [ -l[octal] ] [ -0[octal/hexadecimal] ]
        [ -Idir ] [ -m[-]module ] [ -M[-]'module...' ] [ -f ]
        [ -C [number/list] ]
        [ -S ]
        [ -x[dir] ]
        [ -i[extension] ]
        [ [-e|-E] 'command' ] [ -- ] [ programfile ] [ argument ]...

لمزيد من المعلومات حول هذه الخيارات، يمكنك تشغيل "perldoc perlrun".

الحصول على المساعدة
يمنحك برنامج perldoc الوصول إلى جميع التوثيقات التي تأتي مع بيرل. يمكنك الحصول على المزيد من التوثيقات والدروس ودعم المجتمع عبر الإنترنت على <https://www.perl.org/>.

إذا كنت جديداً على بيرل، فيجب أن تبدأ بتشغيل "perldoc perlintro"، وهو مقدمة عامة للمبتدئين وتوفر بعض الخلفية لمساعدتك في التنقل في بقية وثائق بيرل الواسعة. شغّل "perldoc perldoc" لتتعلم المزيد من الأشياء التي يمكنك فعلها باستخدام perldoc.

لسهولة الوصول، جُزئ دليل بيرل إلى عدة أقسام.

  نظرة عامة
    perl                نظرة عامة على بيرل (هذا القسم)
    perlintro           مقدمة بيرل للمبتدئين
    perlrun             تنفيذ بيرل وخياراته
    perltoc             جدول محتويات توثيق بيرل

  دروس تعليمية
    perlreftut          مقدمة قصيرة عن مراجع بيرل
    perldsc             مقدمة عن هياكل بيانات بيرل
    perllol             هياكل بيانات بيرل: مصفوفات من المصفوفات

    perlrequick         بداية سريعة للتعبيرات النمطية في بيرل
    perlretut           درس تعليمي عن التعبيرات النمطية في بيرل

    perlootut           درس تعليمي عن البرمجة كائنية التوجه في بيرل للمبتدئين

    perlperf            تقنيات تحسين الأداء في بيرل

    perlstyle           دليل أسلوب بيرل

    perlcheat           ورقة غش بيرل
    perltrap            فخاخ بيرل لغير الحذرين
    perldebtut          درس تعليمي عن تنقيح بيرل

    perlfaq             الأسئلة الشائعة حول بيرل
      perlfaq1          أسئلة عامة حول بيرل
      perlfaq2          الحصول على بيرل وتعلمه
      perlfaq3          أدوات البرمجة
      perlfaq4          معالجة البيانات
      perlfaq5          الملفات والتنسيقات
      perlfaq6          التعبيرات النمطية
      perlfaq7          قضايا لغة بيرل
      perlfaq8          التفاعل مع النظام
      perlfaq9          الشبكات

  دليل مرجعي
    perlsyn             بنية بيرل: التصريحات، والعبارات، والتعليقات
    perldata            هياكل بيانات بيرل
    perlop              تعبيرات بيرل: المعاملات، والأسبقية، وسلاسل النصوص الحرفية
    perlsub             برامج بيرل الفرعية
    perlfunc            وظائف بيرل المضمنة
      perlopentut       درس تعليمي عن ()open في بيرل
      perlpacktut       درس تعليمي عن ()pack و ()unpack في بيرل
    perlpod             توثيق بيرل القديم البسيط (POD)
    perlpodspec         مواصفات تنسيق توثيق بيرل القديم البسيط
    perldocstyle        دليل أسلوب بيرل للتوثيقات الأساسية
    perlpodstyle        دليل أسلوب بيرل لـ POD
    perldiag            رسائل بيرل التشخيصية
    perldeprecation     الميزات المهجورة في بيرل
    perllexwarn         تحذيرات بيرل والتحكم فيها
    perldebug           تنقيح بيرل
    perlvar             متغيرات بيرل المحددة مسبقًا
    perlre              التعبيرات النمطية في بيرل، بقية القصة
    perlrebackslash     تتابعات الخط المائل العكسي في تعبيرات بيرل النمطية
    perlrecharclass     أصناف المحارف في تعبيرات بيرل النمطية
    perlreref           مرجع سريع للتعبيرات النمطية في بيرل
    perlref             مراجع بيرل، بقية القصة
    perlform            تنسيقات بيرل
    perlobj             كائنات بيرل
    perltie             كائنات بيرل المخفية خلف متغيرات بسيطة
      perldbmfilter     مرشحات DBM في بيرل
    perlclass           بنية الفئات في بيرل

    perlipc             التواصل بين العمليات في بيرل
    perlfork            معلومات عن ()fork في بيرل
    perlnumber          دلالات الأرقام في بيرل

    perlthrtut          درس تعليمي عن الخيوط (threads) في بيرل

    perlport            دليل قابلية نقل بيرل
    perllocale          دعم المحلية في بيرل
    perluniintro        مقدمة يونيكود في بيرل
    perlunicode         دعم يونيكود في بيرل
    perlunicook         كتاب طبخ يونيكود في بيرل
    perlunifaq          الأسئلة الشائعة حول يونيكود في بيرل
    perluniprops        فهرس خصائص يونيكود في بيرل
    perlunitut          درس تعليمي عن يونيكود في بيرل
    perlebcdic          اعتبارات تشغيل بيرل على منصات EBCDIC

    perlsec             أمن بيرل
    perlsecpolicy       سياسة التعامل مع تقارير أمن بيرل

    perlmod             وحدات بيرل: كيف تعمل
    perlmodlib          وحدات بيرل: كيفية الكتابة والاستخدام
    perlmodstyle        وحدات بيرل: كيفية كتابة الوحدات بأسلوب
    perlmodinstall      وحدات بيرل: كيفية التثبيت من CPAN
    perlnewmod          وحدات بيرل: تحضير وحدة جديدة للتوزيع
    perlpragma          وحدات بيرل: كتابة برغما مستخدم

    perlutil            أدوات مساعدة مرفقة مع توزيعة بيرل

    perlfilter          مرشحات مصدر بيرل

    perldtrace          دعم بيرل لـ DTrace

    perlglossary        مسرد مصطلحات بيرل

  واجهة الأحشاء الداخلية ولغة C
    perlembed           طرق بيرل لتضمين بيرل في تطبيق C أو C++ الخاص بك
    perldebguts         أحشاء تنقيح بيرل وتلميحات عنه
    perlxstut           درس بيرل XS التعليمي
    perlxs              واجهة برمجة تطبيقات بيرل XS
    perlxstypemap       أدوات تحويل الأنواع بين C وبيرل في XS
    perlclib            التفاعل مع وظائف مكتبة C القياسية
    perlguts            وظائف بيرل الداخلية لمن يقومون بعمل ملحقات
    perlcall            اتفاقيات استدعاء بيرل من C
    perlmroapi          واجهة ملحق حل وسيلة بيرل
    perlreapi           واجهة ملحق التعبيرات النمطية في بيرل
    perlreguts          أحشاء محرك التعبيرات النمطية في بيرل
    perlclassguts       أحشاء بنية الفئات (class)

    perlapi             سرد واجهة برمجة تطبيقات بيرل (مُولد آليًا)
    perlintern          وظائف بيرل الداخلية (مُولدة آليًا)
    perliol             واجهة C لتنفيذ بيرل للإدخال والإخراج في طبقات
    perlapio            واجهة تجريد الإدخال والإخراج الداخلية في بيرل

    perlhack            دليل مخترقي بيرل
    perlsource          دليل لشجرة مصدر بيرل
    perlinterp          نظرة عامة على مصدر مفسر بيرل وكيفية عمله
    perlhacktut         جولة في إنشاء رقعة بسيطة لكود C
    perlhacktips        تلميحات لاختراق كود C الخاص بنواة بيرل
    perlpolicy          سياسات تطوير بيرل
    perlgov             قواعد حوكمة بيرل
    perlgit             استخدام git مع مستودع بيرل

  السجل
    perlhist            سجلات تاريخ بيرل
    perldelta           تغييرات بيرل منذ الإصدار السابق
    perl5400delta       تغييرات بيرل في الإصدار 5.40.0
    perl5382delta       تغييرات بيرل في الإصدار 5.38.2
    perl5381delta       تغييرات بيرل في الإصدار 5.38.1
    perl5380delta       تغييرات بيرل في الإصدار 5.38.0
    perl5363delta       تغييرات بيرل في الإصدار 5.36.3
    perl5362delta       تغييرات بيرل في الإصدار 5.36.2
    perl5361delta       تغييرات بيرل في الإصدار 5.36.1
    perl5360delta       تغييرات بيرل في الإصدار 5.36.0
    perl5343delta       تغييرات بيرل في الإصدار 5.34.3
    perl5342delta       تغييرات بيرل في الإصدار 5.34.2
    perl5341delta       تغييرات بيرل في الإصدار 5.34.1
    perl5340delta       تغييرات بيرل في الإصدار 5.34.0
    perl5321delta       تغييرات بيرل في الإصدار 5.32.1
    perl5320delta       تغييرات بيرل في الإصدار 5.32.0
    perl5303delta       تغييرات بيرل في الإصدار 5.30.3
    perl5302delta       تغييرات بيرل في الإصدار 5.30.2
    perl5301delta       تغييرات بيرل في الإصدار 5.30.1
    perl5300delta       تغييرات بيرل في الإصدار 5.30.0
    perl5283delta       تغييرات بيرل في الإصدار 5.28.3
    perl5282delta       تغييرات بيرل في الإصدار 5.28.2
    perl5281delta       تغييرات بيرل في الإصدار 5.28.1
    perl5280delta       تغييرات بيرل في الإصدار 5.28.0
    perl5263delta       تغييرات بيرل في الإصدار 5.26.3
    perl5262delta       تغييرات بيرل في الإصدار 5.26.2
    perl5261delta       تغييرات بيرل في الإصدار 5.26.1
    perl5260delta       تغييرات بيرل في الإصدار 5.26.0
    perl5244delta       تغييرات بيرل في الإصدار 5.24.4
    perl5243delta       تغييرات بيرل في الإصدار 5.24.3
    perl5242delta       تغييرات بيرل في الإصدار 5.24.2
    perl5241delta       تغييرات بيرل في الإصدار 5.24.1
    perl5240delta       تغييرات بيرل في الإصدار 5.24.0
    perl5224delta       تغييرات بيرل في الإصدار 5.22.4
    perl5223delta       تغييرات بيرل في الإصدار 5.22.3
    perl5222delta       تغييرات بيرل في الإصدار 5.22.2
    perl5221delta       تغييرات بيرل في الإصدار 5.22.1
    perl5220delta       تغييرات بيرل في الإصدار 5.22.0
    perl5203delta       تغييرات بيرل في الإصدار 5.20.3
    perl5202delta       تغييرات بيرل في الإصدار 5.20.2
    perl5201delta       تغييرات بيرل في الإصدار 5.20.1
    perl5200delta       تغييرات بيرل في الإصدار 5.20.0
    perl5184delta       تغييرات بيرل في الإصدار 5.18.4
    perl5182delta       تغييرات بيرل في الإصدار 5.18.2
    perl5181delta       تغييرات بيرل في الإصدار 5.18.1
    perl5180delta       تغييرات بيرل في الإصدار 5.18.0
    perl5163delta       تغييرات بيرل في الإصدار 5.16.3
    perl5162delta       تغييرات بيرل في الإصدار 5.16.2
    perl5161delta       تغييرات بيرل في الإصدار 5.16.1
    perl5160delta       تغييرات بيرل في الإصدار 5.16.0
    perl5144delta       تغييرات بيرل في الإصدار 5.14.4
    perl5143delta       تغييرات بيرل في الإصدار 5.14.3
    perl5142delta       تغييرات بيرل في الإصدار 5.14.2
    perl5141delta       تغييرات بيرل في الإصدار 5.14.1
    perl5140delta       تغييرات بيرل في الإصدار 5.14.0
    perl5125delta       تغييرات بيرل في الإصدار 5.12.5
    perl5124delta       تغييرات بيرل في الإصدار 5.12.4
    perl5123delta       تغييرات بيرل في الإصدار 5.12.3
    perl5122delta       تغييرات بيرل في الإصدار 5.12.2
    perl5121delta       تغييرات بيرل في الإصدار 5.12.1
    perl5120delta       تغييرات بيرل في الإصدار 5.12.0
    perl5101delta       تغييرات بيرل في الإصدار 5.10.1
    perl5100delta       تغييرات بيرل في الإصدار 5.10.0
    perl589delta        تغييرات بيرل في الإصدار 5.8.9
    perl588delta        تغييرات بيرل في الإصدار 5.8.8
    perl587delta        تغييرات بيرل في الإصدار 5.8.7
    perl586delta        تغييرات بيرل في الإصدار 5.8.6
    perl585delta        تغييرات بيرل في الإصدار 5.8.5
    perl584delta        تغييرات بيرل في الإصدار 5.8.4
    perl583delta        تغييرات بيرل في الإصدار 5.8.3
    perl582delta        تغييرات بيرل في الإصدار 5.8.2
    perl581delta        تغييرات بيرل في الإصدار 5.8.1
    perl58delta         تغييرات بيرل في الإصدار 5.8.0
    perl561delta        تغييرات بيرل في الإصدار 5.6.1
    perl56delta         تغييرات بيرل في الإصدار 5.6
    perl5005delta       تغييرات بيرل في الإصدار 5.005
    perl5004delta       تغييرات بيرل في الإصدار 5.004

  متفرقات
    perlbook            معلومات عن كتب بيرل
    perlcommunity       معلومات عن مجتمع بيرل

    perldoc             ابحث عن توثيق بيرل بتنسيق Pod

    perlexperiment      سرد للميزات التجريبية في بيرل

    perlartistic        رخصة بيرل الفنية
    perlgpl             رخصة جنو العمومية

  خاص باللغة
    perlcn              بيرل للصينية المبسطة (بترميز UTF-8)
    perljp              بيرل لليابانية (بترميز EUC-JP)
    perlko              بيرل للكورية (بترميز EUC-KR)
    perltw              بيرل للصينية التقليدية (بترميز Big5)

  خاص بالمنصة
    perlaix             ملاحظات بيرل لنظام AIX
    perlamiga           ملاحظات بيرل لنظام AmigaOS
    perlandroid         ملاحظات بيرل لنظام أندرويد
    perlbs2000          ملاحظات بيرل لنظام POSIX-BC BS2000
    perlcygwin          ملاحظات بيرل لنظام Cygwin
    perlfreebsd         ملاحظات بيرل لنظام FreeBSD
    perlhaiku           ملاحظات بيرل لنظام Haiku
    perlhpux            ملاحظات بيرل لنظام HP-UX
    perlhurd            ملاحظات بيرل لنظام Hurd
    perlirix            ملاحظات بيرل لنظام Irix
    perllinux           ملاحظات بيرل لنظام لينكس
    perlmacosx          ملاحظات بيرل لنظام Mac OS X
    perlopenbsd         ملاحظات بيرل لنظام OpenBSD
    perlos2             ملاحظات بيرل لنظام OS/2
    perlos390           ملاحظات بيرل لنظام OS/390
    perlos400           ملاحظات بيرل لنظام OS/400
    perlplan9           ملاحظات بيرل لنظام Plan 9
    perlqnx             ملاحظات بيرل لنظام QNX
    perlriscos          ملاحظات بيرل لنظام RISC OS
    perlsolaris         ملاحظات بيرل لنظام سولاريس
    perlsynology        ملاحظات بيرل لنظام Synology
    perltru64           ملاحظات بيرل لنظام Tru64
    perlvms             ملاحظات بيرل لنظام VMS
    perlvos             ملاحظات بيرل لنظام Stratus VOS
    perlwin32           ملاحظات بيرل لنظام ويندوز

  نوابت (Stubs) للمستندات المحذوفة
    perlboot
    perlbot
    perlrepository
    perltodo
    perltooc
    perltoot

في أنظمة دبيان، تحتاج إلى تثبيت الحزمة perl-doc التي تحتوي على معظم وثائق لغة بيرل القياسية وبرنامج perldoc.

تتوفر وثائق إضافية شاملة لوحدات بيرل، سواء تلك الموزعة مع بيرل أو وحدات الطرف الثالث التي يتم تجميعها أو تثبيتها محليًا.

ينبغي أن تتمكن من الاطلاع على وثائق لغة بيرل باستخدام برنامج man(1) أو perldoc(1).

بعض الوثائق غير متوفرة كصفحات دليل (man pages)، لذا إذا لم يجد man مرجعاً متبادلاً، جربه باستخدام perldoc. يمكن لـ perldoc أيضًا أن يأخذك مباشرة إلى وثائق الدوال (باستخدام المفتاح -f). انظر "perldoc --help" (أو "perldoc perldoc" أو "man perldoc") لمعرفة الخيارات المفيدة الأخرى التي يقدمها perldoc.

بشكل عام، إذا حدث خطأ غريب في برنامجك ولم تكن متأكداً من أين تبحث عن المساعدة، فحاول جعل الكود الخاص بك متوافقاً مع use strict و use warnings. غالباً ما يشير هذان الأمران إلى مكان المشكلة بالضبط.

الوصف
يرمز بيرل رسمياً إلى Practical Extraction and Report Language، إلا عندما لا يكون كذلك.

كان بيرل في الأصل لغة مُحسنة لمسح الملفات النصية العشوائية، واستخراج المعلومات من تلك الملفات النصية، وطباعة التقارير بناءً على تلك المعلومات. وسرعان ما أصبح لغة جيدة للعديد من مهام إدارة النظام. وعلى مر السنين، نما بيرل ليصبح لغة برمجة عامة الغرض. ويُستخدم على نطاق واسع في كل شيء من "الأسطر الواحدة" السريعة إلى تطوير التطبيقات واسعة النطاق.

هذه اللغة مخصصة لتكون عملية (سهلة الاستخدام، وفعالة، وكاملة) بدلاً من أن تكون جميلة (صغيرة، وأنيقة، وبسيطة). فهي تجمع (في رأي المؤلف، على أي حال) بعض أفضل ميزات sed، و awk، و sh، مما يجعلها مألوفة وسهلة الاستخدام لمستخدمي يونكس لابتكار حلول سريعة للمشاكل المزعجة. تدعم مرافق البرمجة للأغراض العامة فيها نماذج البرمجة الإجرائية، والوظيفية، والكائنية التوجه، مما يجعل بيرل لغة مريحة للمدى الطويل في المشاريع الكبرى، مهما كان توجهك.

لم تُنسَ جذور بيرل في معالجة النصوص على مر السنين. فهو لا يزال يفتخر ببعض من أقوى التعبيرات النمطية التي يمكن العثور عليها في أي مكان، ودعمه لنصوص يونيكود هو من الطراز العالمي. كما أنه يتعامل مع جميع أنواع النصوص المهيكلة أيضًا من خلال مجموعة واسعة من الملحقات. تلك المكتبات، المجموعة في CPAN، توفر حلولاً جاهزة لمجموعة مذهلة من المشاكل. وعندما لا تضع المعايير بنفسها، فإنها تسرق من الأفضل -- تماماً مثل بيرل نفسه.

التوفر
يتوفر بيرل لمعظم أنظمة التشغيل، بما في ذلك جميع المنصات الشبيهة بيونكس تقريباً. انظر "المنصات المدعومة" في perlport للحصول على قائمة.

البيئة
انظر "ENVIRONMENT" في perlrun.

المؤلف
لاري وول <larry@wall.org>، بمساعدة عدد كبير من الأشخاص الآخرين.

إذا كانت قصص نجاحك مع بيرل وشهاداتك قد تساعد الآخرين الذين يرغبون في تأييد استخدام بيرل في تطبيقاتهم، أو إذا كنت ترغب ببساطة في التعبير عن امتنانك لـ لاري ومطوري بيرل، فيرجى الكتابة إلى perl-thanks@perl.org.

الملفات
 "@INC"                 مواقع مكتبات بيرل

"@INC" أعلاه هو مرجع للمتغير المدمج الذي يحمل الاسم نفسه؛ راجع perlvar لمزيد من المعلومات.

انظر أيضًا

<https://www.perl.org/>
    صفحة بيرل الرئيسة

<https://www.perl.com/>
    مقالات بيرل

<https://www.cpan.org/>
    أرشيف Perl الشامل (CPAN)

<https://www.pm.org/>
    Perl Mongers

التشخيص
يضمن استخدام براغما "use strict" التصريح عن كافة المتغيرات بشكل صحيح ويمنع سوء الاستخدام الآخر لميزات بيرل القديمة. هذه مفعلة مبدئيًا ضمن نطاق "use v5.12" (أو أعلى).

تنتج برغما "use warnings" بعض التشخيصات الرائعة. هي مفعلة مبدئيًا عند قول "use v5.35" (أو أعلى). يمكن للمرء أيضًا استخدام علم -w، ولكن استخدامه غير محبذ عادةً لأنه يُطبق على جميع أكواد بيرل المنفذة، بما في ذلك تلك التي لا تخضع لسيطرتك.

انظر perldiag لشرح جميع تشخيصات بيرل. تقوم الكلمة التوجيهية "use diagnostics" آليًا بتحويل تحذيرات وأخطاء بيرل المقتضبة عادةً إلى هذه الأشكال الأطول.

ستخبرك أخطاء التجميع برقم سطر الخطأ، مع إشارة إلى الرمز التالي أو نوع الرمز الذي كان سيُفحص. (في نص برمجي مُرر إلى بيرل عبر مفاتيح -e، يُحسب كل -e كسطر واحد.)

سكربتات Setuid لها قيود إضافية يمكن أن تنتج رسائل خطأ مثل "Insecure dependency". انظر perlsec.

هل ذكرنا أنه يجب عليك بالتأكيد التفكير في استخدام برغما use warnings؟

العلل
السلوك الذي تفرضه برغما use warnings ليس إلزاميًا.

يقع بيرل تحت رحمة تعريفات حاسوبك للعمليات المختلفة مثل تحويل الأنواع، و atof()، ومخرج الفاصلة العائمة مع sprintf().

إذا كان نظام stdio لديك يتطلب عملية seek أو eof بين القراءات والكتابات في مجرى معين، فإن بيرل تتطلب ذلك أيضًا. (هذا لا ينطبق على sysread() و syswrite().)

بينما لا يوجد لأي من أنواع البيانات المضمنة أي حدود اعتباطية للحجم (بخلاف حجم الذاكرة)، إلا أنه لا تزال هناك بعض الحدود الاعتباطية: لا يجوز أن يكون اسم المتغير المعطى أطول من 251 محرفًا. أرقام الأسطر التي تعرضها التشخيصات تُخزن داخليًا كأعداد صحيحة قصيرة، لذا فهي محدودة بحد أقصى 65535 (وعادة ما تتأثر الأرقام الأعلى بالالتفاف).

يمكنك إرسال تقارير الأخطاء (تأكد من تضمين معلومات الإعداد الكاملة كما يخرجها برنامج myconfig في شجرة مصدر بيرل، أو عبر "perl -V") إلى <https://github.com/Perl/perl5/issues>.

يرمز بيرل في الواقع إلى Pathologically Eclectic Rubbish Lister، ولكن لا تخبر أحداً أنني قلت ذلك.

ملاحظات
شعار بيرل هو "هناك أكثر من طريقة للقيام بذلك." ترك تخمين كم عدد الطرق الأخرى كتمرين للقارئ.

الفضائل الثلاث الرئيسة للمبرمج هي الكسل، ونفاد الصبر، والغطرسة. انظر كتاب الجمل (Camel Book) لمعرفة السبب.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.