Perl500503Syntax::OrDie ورقة المرجع السريع (العربية)
======================================================

الاسم
    Perl500503Syntax::OrDie - التحقق من توافق الكود المصدري مع Perl 5.005_03

الإصدار
    0.01

الملخص
    use Perl500503Syntax::OrDie;

    use Perl500503Syntax::OrDie ();
    Perl500503Syntax::OrDie::check_file('/path/to/script.pl');
    Perl500503Syntax::OrDie::check_source($source, 'label.pl');

    # تشغيل كأمر:
    perl lib/Perl500503Syntax/OrDie.pm script.pl
    perl lib/Perl500503Syntax/OrDie.pm script1.pl script2.pl ...
    perl lib/Perl500503Syntax/OrDie.pm -

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

التراكيب المفحوصة (ثابتة، وقت التجميع)
    Perl 5.6  : our / 3-arg open / use utf8 / \x{} / @+@- /
                CHECK/INIT / v-string / $^V / :lvalue / \p{}\P{}
    Perl 5.8  : use encoding / PerlIO layers
    Perl 5.10 : //= // say state given/when ~~ use feature
                \K (?<name>) \k<name> (?|) (*VERB) \h\v\R
                UNITCHECK possessive-quantifiers (?1)(?R) ${^MATCH} \g{N}
    Perl 5.12 : package NAME VERSION / ...
    Perl 5.14 : s///r tr///r
    Perl 5.16 : __SUB__
    Perl 5.20 : subroutine signatures / $ref->@*
    Perl 5.22 : <<>> / /n
    Perl 5.26 : <<~
    Perl 5.30 : (?<=.{2,}X) variable-length lookbehind (experimental; stable 5.38)
    Perl 5.32 : isa
    Perl 5.34 : try/catch
    Perl 5.36 : use builtin / for my ($a,$b)
    Perl 5.38 : class

تاريخ إصدارات Perl (الميزات التي يفحصها هذا الوحدة)
    مراجع: https://perldoc.perl.org/perl56delta
            https://perldoc.perl.org/perl58delta
            https://perldoc.perl.org/perl5100delta
            https://perldoc.perl.org/perl5180delta
            https://perldoc.perl.org/perl5220delta
            https://perldoc.perl.org/perl5240delta
            https://perldoc.perl.org/perl5280delta
            https://perldoc.perl.org/perl5300delta
            https://perldoc.perl.org/perl5380delta
            https://perldoc.perl.org/perl5400delta
            https://perldoc.perl.org/perl5420delta
            (انظر EN cheatsheet للقائمة الكاملة)

  perl56delta (Perl 5.6.0, 2000-03-22)
    our: إعلان متغير حزمة بنطاق معجمي. استخدم "use vars" بدلاً منه.
    open ثلاثي المعاملات: استخدم open(FH, ">path").
    use utf8 / use VERSION>=5.6 / \x{HHHH} / \N{name}
    @+/@-/$+[N]/$-[N]: مصفوفات مواضع التطابق
    CHECK/INIT: كتل الأطوار
    v-string / $^V / :lvalue / \p{}\P{}
    mkdir بدون وضع: 5.005_03 يتطلب mkdir(PATH, MODE)

  perl58delta (Perl 5.8.0, 2002-07-18)
    use encoding / طبقات PerlIO (:utf8 :encoding :crlf)

  perl5100delta (Perl 5.10.0, 2007-12-18)
    // //= say state given/when ~~ use feature \K
    (?<name>...) \k<name> (?|...) (*VERB) \h\H\v\V\R
    UNITCHECK a++ a*+ a?+ (?1)(?R) ${^MATCH} \g{N}

  perl5120delta (5.12): package NAME VERSION / yada-yada ...
  perl5140delta (5.14): s///r tr///r
  perl5160delta (5.16): __SUB__
  perl5200delta (5.20): signatures / $ref->@*
  perl5220delta (5.22): <<>> / /n
  perl5260delta (5.26): <<~
  perl5320delta (5.32): isa
  perl5340delta (5.34): try/catch
  perl5360delta (5.36): use builtin / for my ($a,$b)
  perl5300delta (5.30): variable-length lookbehind in regex (experimental; stable Perl 5.38)

  perl5380delta (5.38): class

  perl5180delta (5.18): my sub / state sub -- lexical subroutines

  perl5400delta (Perl 5.40.0, 2024-06-09)
    ^^ / ^^= high-precedence logical XOR operator
      $x ^^ $y  -- completes the &&/|| set; use "xor" for 5.005_03.
    __CLASS__ keyword (inside class blocks)
      Runtime class name inside method/ADJUST/field (requires class feature).

  perl5420delta (Perl 5.42.0, 2025-07-02)
    any BLOCK LIST / all BLOCK LIST (experimental keywords)
      any { EXPR } @list  -- use List::Util::any for 5.005_03.
    my method / ->& lexical method call (requires class feature)
      my method foo () { ... }  -- lexically scoped private method.

عبارات آمنة (Perl 5.005_03)
    use vars qw($x @arr %hash);           بدلاً من "our"
    open(FH, ">$path") or die $!;         صيغة ثنائية bareword
    mkdir("dir", 0755) or die $!;         وضع صريح
    $x = defined($y) ? $y : 'v';          بدلاً من //=
    print "...\n";                         بدلاً من say

المؤلف
    INABA Hitoshi <ina@cpan.org>

الرخصة
    مكتبة حرة، قابلة لإعادة التوزيع وفق نفس شروط Perl.
