الإنجليزيةالفرنسيةالإسبانية

OnWorks فافيكون

PDL::FAQp - عبر الإنترنت في السحابة

قم بتشغيل PDL::FAQp في موفر الاستضافة المجاني OnWorks عبر Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

هذا هو الأمر PDL::FAQp الذي يمكن تشغيله في موفر الاستضافة المجاني OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

برنامج:

اسم


PDL::FAQ - الأسئلة المتداولة حول PDL

VERSION


إصدار الأسئلة الشائعة الحالي: 1.004

الوصف


هذا هو الإصدار 1.004 من الأسئلة الشائعة لـ PDL، وهي عبارة عن مجموعة من الأسئلة المتداولة حول
PDL - لغة بيانات بيرل.

نبذة عن VALOR هذا DOCUMENT


Q: 1.1 في إلى جد وثيقة
يمكنك العثور على أحدث نسخة من هذا المستند على
<http://pdl.perl.org/?docs=FAQ&title=Frequently%20Asked%20Questions> .

Q: 1.2 كيفية إلى المساهمة إلى وثيقة
هذه نسخة معدلة إلى حد كبير من الأسئلة الشائعة لـ PDL. على هذا النحو قد يكون هناك العديد من الأخطاء
تسللت إلى الداخل وربما لم تتمكن العديد من التحديثات من الوصول إليها. ونحن نشجعك صراحةً على السماح بذلك
نعرف عن الأسئلة التي تعتقد أنه يجب الإجابة عليها في هذه الوثيقة ولكن في الوقت الحالي
ليست كذلك.

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

أرسل تعليقاتك أو إضافاتك أو اقتراحاتك أو تصحيحاتك إلى القائمة البريدية لـ PDL على
[البريد الإلكتروني محمي]. راجع السؤال: 3.2 أدناه للحصول على إرشادات حول كيفية الانضمام إلى البريد
القوائم.

يمكنك تحويل أي لحظة سعيدة إلى ذكرى ثمينة وخالدة – احتفظ بها على شكل صورة أو مقطع فيديو باستخدام الكاميرا الخلفية المضمنة. ومن خلال اتصال Bluetooth، يمكنك مشاركة الملفات ذات المحتوى العزيز على قلبك مع أجهزة المقربين منك. أسئلة


Q: 2.1 ابحث عن is PDL ?
يعنيPDL بيرل البيانات اللغة . لقولها بكلمات كارل جلازبروك،
بادئ مشروع PDL:

مفهوم PDL هو إعطاء القدرة القياسية لـ perl5
لتخزين الحجم الكبير والتعامل معه بسرعة
مجموعات البيانات ذات الأبعاد N والتي تمثل الخبز والزبدة
من الحوسبة العلمية. على سبيل المثال $a=$b+$c يمكن إضافة اثنين
2048x2048 صورة في جزء من الثانية فقط.

فهو يوفر الكثير من الوظائف المفيدة للتحليل العلمي والرقمي.

بالنسبة للقراء المطلعين على حزم تقييم البيانات العلمية الأخرى، قد يكون من المفيد
أضف أن PDL يشبه في كثير من النواحي IDL وMATLAB والحزم المشابهة. ومع ذلك، فإنه
يحاول تحسين عدد من القضايا التي تم تصورها (من قبل مؤلفي PDL) على أنها
أوجه القصور في تلك الحزم الموجودة.

Q: 2.2 لمحة عن وتدعم PDL؟ لمحة عن يطور ذلك؟
يتم دعم PDL من قبل مستخدميها. يتم توفير الدعم العام غير الرسمي لـ PDL من خلال
القائمة البريدية للـ PDL ([البريد الإلكتروني محمي] ، انظر أدناه).

باعتبارها امتدادًا لـ Perl (انظر س: 2.5 أدناه)، فهي مخصصة لفكرة الحرية والمفتوحة
التطوير الذي طرحه مجتمع بيرل. تم تطوير PDL ويتم تطويره بنشاط بواسطة أ
مجموعة متماسكة من الأشخاص حول العالم يقومون بتنسيق أنشطتهم من خلال
القائمة البريدية لتطوير PDL ([البريد الإلكتروني محمي] انظر س: 3.2 أدناه). اذا أنت
ترغب في الانضمام إلى الجهود المستمرة لتحسين PDL، يرجى الانضمام إلى هذه القائمة.

Q: 2.3 لماذا حتى الآن طرق البيانات اللغة ?
هناك في الواقع عدة أسباب ويجب على الجميع أن يقرر بنفسه ما هي الأسباب
أهمها:

· PDL هو "برنامج مجاني". يعتقد مؤلفو PDL أن هذا المفهوم له عدة
المزايا: يمكن للجميع الوصول إلى المصادر -> تصحيح أفضل للأخطاء، وقابلية للتكيف بسهولة
لاحتياجاتك الخاصة، وقابلة للتوسيع لأغراضك، وما إلى ذلك... مقارنة بالتجارية
حزم مثل MATLAB وIDL لها أهمية كبيرة بالنسبة للعاملين
تريد القيام ببعض الأعمال في المنزل ولا تستطيع تحمل التكلفة الكبيرة لشراء الأعمال التجارية
حزم للاستخدام الشخصي.

· يعتمد PDL على لغة برمجة قوية ومصممة بشكل جيد: Perl. أضع ثقتي في
لغات تحليل البيانات العلمية/الرقمية الأخرى تم تصميمها باستخدام
ميزات لغة مثبتة بدلاً من أن تنمو إلى الوجود من الصفر.
يؤدي تحديد هياكل التحكم أثناء إضافة الميزات أثناء التطوير إلى
اللغات التي غالبًا ما تبدو خرقاء وسيئة التخطيط لمعظم الحزم الموجودة بها
نطاق مماثل مثل PDL.

· استخدام لغة Perl كأساس، حيث يتمتع مبرمج لغة PDL بجميع الميزات القوية التي تتمتع بها لغة Perl
اليد، منذ البداية. يتضمن ذلك التعبيرات العادية والمصفوفات الترابطية
(التجزئة)، واجهات مصممة جيدًا لنظام التشغيل والشبكة وما إلى ذلك
لقد أظهر أنه حتى في البرمجة ذات التوجه العددي بشكل أساسي، غالبًا ما يكون الأمر بالغ الأهمية
مفيد إذا كان لديك سهولة الوصول إلى أرقام شبه رقمية قوية أو غير رقمية تمامًا
الوظيفة أيضًا. على سبيل المثال، قد ترغب في عرض نتائج أ
ربما تكون عملية حسابية معقدة كعملية خادم للعمليات الأخرى على الشبكة
قبول المدخلات مباشرة من العمليات الأخرى على الشبكة. باستخدام بيرل والموجودة
حزم ملحقات Perl مثل هذه لا تمثل مشكلة على الإطلاق (وسوف تناسب كل شيء
في "برنامج PDL النصي" الخاص بك).

· سهولة التوسعة وقابلية التشغيل البيني للغاية حيث أن PDL هو امتداد لـ Perl.
يعد دعم التطوير لامتدادات Perl جزءًا لا يتجزأ من Perl وهناك
بالفعل العديد من الامتدادات لـ Perl القياسية متاحة مجانًا على الشبكة.

· ميزات اللغة المتكاملة لـ Perl (التعبيرات العادية، والتجزئة، ووحدات الكائنات)
سهلت بشكل كبير تطوير وتنفيذ المفاهيم الأساسية لـ PDL. واحد من
الأمثلة الأكثر وضوحا لهذه النقطة هي على الأرجح PDL::PP (انظر س: 6.16 أدناه)، أ
مولد الكود/المحلل اللغوي/المعالج المسبق الذي يقوم بإنشاء وظائف PDL بشكل موجز
الأوصاف.

· لا تتبع أي من لغات البيانات الحالية قواعد لغة بيرل، التي وضعها المؤلفون
نؤمن بشدة بـ:

· تيمتوتدي: هناك أكثر من طريقة للقيام بذلك. اللغات الحد الأدنى هي
مثيرة للاهتمام لعلماء الكمبيوتر، ولكن بالنسبة للمستخدمين، هناك القليل من التكرار
يجعل التعامل مع الأمور أسهل إلى حد كبير ويسمح بأساليب البرمجة الفردية -
مثلما يتحدث الناس بطرق مختلفة. بالنسبة لكثير من الناس سيكون هذا بلا شك
سبب لتجنب PDL ;)

· الأشياء البسيطة هي أشياء بسيطة، والأشياء المعقدة ممكنة: الأشياء التي يتم القيام بها غالبًا
ينبغي أن يكون من السهل القيام بها باللغة، في حين أن الأشياء التي نادرًا ما يتم القيام بها لا ينبغي أن تكون كذلك
مرهقة.

تنتهك جميع اللغات الموجودة واحدة على الأقل من هذه القواعد.

· كمشروع للمستقبل PDL ينبغي أن يكون قادرا على استخدام ميزات الكمبيوتر الفائقة، على سبيل المثال
قدرات المتجهات/المعالجة المتوازية، تسريع GPGPU. من المحتمل أن يكون هذا
يتم تحقيق ذلك من خلال قيام PDL::PP (انظر س: 6.16 أدناه) بإنشاء الكود المناسب لذلك
البنيات لاستغلال هذه الميزات.

· [املأ 111 سببًا مفضلاً لديك هنا...]

Q: 2.4 ابحث عن is PDL خير لـ ?
فقط في حال كنت لا تعرف بعد ما هي الميزات الرئيسية لـ PDL وما يمكن للمرء فعله
معهم، وهنا قائمة (انتقائية بالضرورة) من الميزات الرئيسية:

يعد PDL مناسبًا تمامًا لحسابات المصفوفات، والمعالجة العامة للبيانات متعددة الأبعاد،
معالجة الصور، الحساب العلمي العام، التطبيقات العددية. وهو يدعم الإدخال/الإخراج
للعديد من تنسيقات الصور والبيانات الشائعة، 1D (مخططات الخطوط)، 2D (الصور)، و3D (الحجم)
التصور، والمؤامرات السطحية عبر OpenGL - على سبيل المثال يتم تنفيذها باستخدام Mesa أو الفيديو
برامج تشغيل بطاقة OpenGL)، وإمكانيات عرض الرسومات وتنفيذ العديد من العمليات الرقمية و
خوارزميات شبه رقمية.

من خلال المعالج المسبق القوي، من السهل أيضًا ربط Perl بـ C المفضل لديك
الروتينية، وأكثر من ذلك أدناه.

Q: 2.5 ابحث عن is هيه صلة ما بين PDL بيرل ?
PDL عبارة عن حزمة ملحقة لـ Perl5. على هذا النحو، فإنه يحتاج إلى تثبيت Perl5 موجود (انظر
أدناه) للتشغيل. علاوة على ذلك، فإن الكثير من PDL مكتوب بلغة Perl (+ بعض الوظائف الأساسية التي
مكتوب في ج). برامج PDL هي (من الناحية التركيبية) مجرد نصوص Perl التي يتم استخدامها
بعض الوظائف التي تنفذها الحزمة "PDL".

Q: 2.6 ابحث عن do I حاجة إلى يجري PDL on my آلة ?
نظرًا لأن PDL مجرد حزمة Perl5، فإنك تحتاج أولاً إلى تثبيت Perl5 على جهازك
آلة. حتى كتابة هذه السطور، يتطلب PDL الإصدار 5.8 من Perl، أو أعلى. معلومات اكثر
يمكن العثور على مكان وكيفية تثبيت Perl على صفحة Perl الرئيسية
<http://www.perl.org> وفي العديد من مواقع CPAN (إذا كنت لا تعرف ماذا CPAN هو التحقق من
الإجابة على السؤال التالي).

لإنشاء PDL، تحتاج أيضًا إلى مترجم C فعال، ودعم Xsubs، والحزمة
Extutils::MakeMaker. إذا لم يكن لديك مترجم فقد يكون هناك توزيع ثنائي
المتاحة، راجع "التوزيعات الثنائية" أدناه.

إذا كان بإمكانك (أو لا تستطيع) جعل PDL يعمل على نظام أساسي جديد (غير مدعوم سابقًا)، فسنقوم بذلك
أحب أن أسمع عن ذلك. من فضلك، قم بالإبلاغ عن نجاحك/فشلك إلى القائمة البريدية لـ PDL على
[البريد الإلكتروني محمي] . سنبذل قصارى جهدنا لمساعدتك في نقل PDL إلى نظام جديد.

Q: 2.7 في do I دولار فقط واحصل على خصم XNUMX% على جميع ذلك؟
PDL متاح كتوزيع المصدر في شامل بيرل الأرشيف شبكة (أو
CPAN) ومن صفحة مشروع sourceforge.net على
. لا تحتوي أرشيفات CPAN على ملف
توزيع PDL ولكن أيضًا كل شيء آخر متعلق بـ Perl. شبكة الاتصال المركزية هي
تنعكس في عشرات المواقع في جميع أنحاء العالم. الموقع الرئيسي هوhttp://www.cpan.org>,
ويمكن العثور على مواقع CPAN المحلية (المرايا) هناك. داخل CPAN تجد الأحدث
تم إصدار نسخة من PDL في الدليل /modules/by-module/PDL/. الصفحة الرئيسية لـ PDL موجودة على
<http://pdl.perl.org> ويمكن أيضًا تنزيل أحدث إصدار من هناك.

Q: 2.8 ابحث عن do I لديك إلى دفع إلى دولار فقط واحصل على خصم XNUMX% على جميع PDL؟
يسعدنا أن نكون قادرين على إعطائك أفضل إجابة ممكنة على سؤال مثل
هذا: PDL هو *برنامج مجاني* وجميع المصادر متاحة للعامة. ولكن لا يزال هناك
بعض حقوق الطبع والنشر للامتثال لها. لذا من فضلك، حاول أن تكون لطيفًا مثلنا (مؤلفي PDL).
ومحاولة الالتزام بها.

أوه، قبل أن تعتقد أنه مجاني تمامًا: عليك أن تستثمر بعض الوقت لتتمكن من سحبه
التوزيع من الشبكة، وتجميعه وتثبيته و(ربما) قراءة الأدلة.

الحصول على مساعدة/المزيد معلومات


Q: 3.1 في يمكن I دولار فقط واحصل على خصم XNUMX% على جميع معلومات on PDL؟
تتوفر وثائق PDL الكاملة مع توزيع PDL. استخدم الأمر
"perldoc PDL" لبدء التعرف على PDL.

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

والأفضل من ذلك، أنه يمكنك على الفور تجربة معرفتك المكتسبة حديثًا حول PDL عن طريق الإصدار
أوامر PDL/Perl مباشرة في سطر الأوامر. لتوضيح هذه العملية، هنا
سجل جلسة "pdl2" النموذجية لمبتدئ PDL (الإخراج المطول يكون رمزيًا فقط
منقولة بين قوسين ( <... ...> ) ):

يونيكس> pdl2
بي دي إل> مساعدة
< ... مساعدة في الإخراج ... >
pdl> مساعدة PDL::QuickStart
< ... صفحة بيرلدوك ... >
pdl> $a = pdl (1,5,7.3,1.0)
pdl> $b = تعويم التسلسل، 4، 4
pdl> مساعدة داخلية
< ... مساعدة في الوظيفة "الداخلية" ... >
pdl> $c = داخلي $a, $b
pdf> ص $c
[22.6 79.8 137]

لمزيد من مصادر المعلومات التي يمكن الوصول إليها عبر الإنترنت، انظر التالي
سؤال.

Q: 3.2 هل هناك آخر PDL معلومات تقارير عن مصادر العطور بدون العلبة on هيه الإنترنت؟
أولاً، بالنسبة لجميع الأسئلة المتعلقة بـ Perl، هناك الكثير من المصادر على الشبكة.
النقاط الجيدة للبدء هيhttp://www.perl.com> وhttp://www.perl.org>.

يمكن الوصول إلى موقع PDL الرئيسي عن طريق توجيه متصفح الويب الخاص بك إليهhttp://pdl.perl.org>.
لديها الكثير من الأشياء الجيدة لأي شخص مهتم بـ PDL:

· توزيعات PDL

· التوثيق عبر الإنترنت

· مؤشرات إلى أرشيف HTML للقوائم البريدية لـ PDL

· قائمة بالمنصات التي تم اختبار PDL عليها بنجاح.

· أخبار حول الميزات المضافة مؤخرًا والمكتبات المنقولة وما إلى ذلك.

· اسم حاملي اليقطين الحاليين لوحدات PDL المختلفة (إذا كنت تريد أن تعرف
ماذا يعني ذلك أنه من الأفضل إلقاء نظرة على صفحات الويب).

إذا كنت مهتمًا بـ PDL بشكل عام، يمكنك الانضمام إلى القائمة البريدية لـ PDL
[البريد الإلكتروني محمي]. هذا منتدى لمناقشة مشكلات البرمجة في PDL، والإبلاغ عن الأخطاء،
اطلب المساعدة في حل المشكلات المتعلقة بـ PDL، وما إلى ذلك. للاشتراك، املأ النموذج على
<http://mailman.jach.hawaii.edu/mailman/listinfo/perldl>.

يمكن لأرشيف قابل للبحث ونسخة النص التشعبي لحركة المرور في هذه القائمة (1997-2004).
يمكن العثور عليها فيhttp://www.xray.mpe.mpg.de/mailing-lists/perldl/> . المزيد من الرسائل الأخيرة
(منذ يونيو 2005) يمكن العثور عليها فيhttp://mailman.jach.hawaii.edu/mailman/listinfo/perldl>
.

إذا كنت مهتمًا بجميع التفاصيل الفنية لتطوير PDL المستمر، فيمكنك ذلك
انضم إلى القائمة البريدية لمطوري PDL [البريد الإلكتروني محمي] . للاشتراك، املأ
التنسيقhttp://mailman.jach.hawaii.edu/mailman/listinfo/pdl-porters>.

يمكن لأرشيف قابل للبحث ونسخة النص التشعبي لحركة المرور في هذه القائمة (1997-2004).
يمكن العثور عليها فيhttp://www.xray.mpe.mpg.de/mailing-lists/pdl-porters/> . المزيد من الرسائل الأخيرة
(منذ يونيو 2005) يمكن العثور عليها في
<http://mailman.jach.hawaii.edu/mailman/listinfo/pdl-porters>.

وينبغي تجنب النشر المتبادل بين هذه القوائم ما لم يكن هناك جدا سبب وجيه ل
افعل ذلك.

Q: 3.3 ابحث عن is هيه تيار الإصدار of PDL ?
حتى كتابة هذه السطور (الأسئلة الشائعة الإصدار 1.004 بتاريخ 16 سبتمبر 2013) أحدث إصدار ثابت هو 2.006.
يجب أن يكون الإصدار الثابت الأخير متاحًا دائمًا من موقع مرآة CPAN القريب منك (انظر
السؤال 2.7 للحصول على معلومات حول مكان الحصول على PDL).

يمكن الحصول على الإصدار الأحدث (وربما غير المستقر) من PDL من Git
المستودع، راجع السؤال 4.10 والإصدارات الدورية لمطوري CPAN لرمز Git
يتم إجراؤها لأغراض الاختبار وتوافر أكثر عمومية. الحالي بعد PDL-2.006
إصدار المطورين لـ PDL متاح كـ CHM/PDL-2.006_07.tar.gz .

Q: 3.4 I تريد إلى المساهمة إلى هيه إضافي تطوير of بدل. كيفية يمكن I HELP؟
هناك طريقتان يمكنك من خلالهما المساعدة على الفور تقريبًا وهما (1) المشاركة في مختبري CPAN من أجل
PDL والوحدات ذات الصلة، و(2) التدقيق اللغوي وتوضيح وثائق PDL بحيث
وهو الأكثر قابلية للاستخدام لمستخدمي PDL، وخاصة المستخدمين الجدد.

للمشاركة في مختبري CPAN والمساهمة في تقارير الاختبار، قم بزيارة الصفحة
<http://wiki.cpantesters.org/wiki/QuickStart> لديه تعليمات للبدء في أي منهما
مستخدمو "CPAN" أو "CPANPLUS".

إذا كان لديك مشروع معين في ذهنك، فيجب عليك التحقق مما إذا كان شخص آخر يعمل بالفعل
عليه أو إذا كان بإمكانك الاستفادة من الوحدات الموجودة. افعل ذلك عن طريق نشر مشروعك المخطط له
إلى القائمة البريدية لمطوري PDL على [البريد الإلكتروني محمي] . شاهد الاشتراك
التعليمات في السؤال 3.2. نحن نبحث دائمًا عن أشخاص لكتابة التعليمات البرمجية و/أو
توثيق ؛).

Q: 3.5 I اعتقد I لديك وجدت a علة in هيه تيار الإصدار of بدل. ابحث عن سوف I فعل؟
أولاً، تأكد من أن الخطأ/المشكلة التي واجهتها لم يتم التعامل معها بالفعل
في مكان آخر في هذه الأسئلة الشائعة. ثانيًا، يمكنك التحقق من أرشيف PDL القابل للبحث
القوائم البريدية لمعرفة ما إذا كان هذا الخطأ قد تمت مناقشته بالفعل. إذا كنت لا تزال لم تفعل ذلك
وجدت أي تفسيرات يمكنك إرسال تقرير بالأخطاء إليها [البريد الإلكتروني محمي] ، أو من خلال
رابط الأخطاء علىhttp://pdl.perl.org> . انظر بق الملف في توزيع PDL لـ
ما هي المعلومات التي يجب تضمينها. إذا لم تكن متأكدًا، يمكنك إجراء المناقشات عبر القائمة البريدية لـ perldl
يمكن أن يكون مفيدًا للغاية.

تركيب


Q: 4.1 I لديك مشاكل تركيب بدل. ابحث عن سوف I فعل؟
تأكد أولاً من أنك قرأت الملف تثبيت في التوزيع. يحتوي هذا على قائمة
من المشاكل الشائعة التي لا داعي لتكرارها هنا.

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

ملحوظة: Unix Shell خاص: إذا كنت ترغب في حفظ ملف perldl.conf المُعدل للمستقبل
يبني فقط نسخه ك ~/.perldl.conf في الدليل الرئيسي الخاص بك حيث سيتم التقاطه
تلقائيًا أثناء عملية إنشاء PDL.

تحقق أيضًا من وجود إصدار آخر موجود مسبقًا من PDL على نظام البناء. متعددة PDL
يمكن أن تؤدي عمليات التثبيت في نفس PATH أوINC إلى اختبار محير أو فشل في البناء.

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

Q: 4.2 هل هناك ترتيب ملفات لـ PDL I لديك إلى يحرر؟
لا ينبغي أن يضطر معظم المستخدمين إلى تحرير أي ملفات تكوين يدويًا. ومع ذلك، في بعض
في الحالات التي قد تضطر إلى تقديم بعض المعلومات حول ما تم وضعه بشكل محرج
الملفات/المكتبات أو قد ترغب في تعطيل إنشاء بعض PDL الاختيارية بشكل صريح
وحدات. تحقق من الملفات تثبيت perldl.conf للتفاصيل.

إذا كان عليك التعديل يدويًا perldl.conf وسعداء بالنتائج التي يمكنك الاحتفاظ بها
ملف مفيد للرجوع إليه في المستقبل. ضعه في ~/.perldl.conf حيث سيتم التقاطه
تلقائيًا أو استخدم "Perl Makefile.PL PDLCONF=your_file_name" في المرة القادمة التي تقوم فيها بإنشاء PDL.

Q: 4.3 Do I حاجة آخر نظام البرمجيات لـ ناجح عملية؟
بالنسبة لوظيفة PDL الأساسية، لا تحتاج إلى أي برامج إضافية. ومع ذلك، بعض
وحدات PDL الاختيارية المضمنة في التوزيعة (لا سيما معظم الرسومات وبعض عمليات الإدخال/الإخراج
الوحدات النمطية) تتطلب تثبيت مكتبات/برامج معينة أخرى. تحقق من الملف
التبعيات في التوزيع للحصول على التفاصيل والتوجيهات حول كيفية الحصول عليها.

Q: 4.4 كيفية يمكن I تثبيت PDL in a غير قياسي موقع؟
لتثبيت PDL في موقع غير قياسي، استخدم خيار INSTALL_BASE في ملف "perl
Makefile.PL" خطوة التكوين. على سبيل المثال، "Perl Makefile.PL INSTALL_BASE=/mydir/perl5"
سيقوم بتكوين PDL لتثبيته في الشجرة المتجذرة في "/mydir/Perl5". لمزيد من التفاصيل
راجع "كيف يمكنني الاحتفاظ بدليل الوحدة/المكتبة الخاص بي؟" في perlfaq8 والأقسام اللاحقة.
البديل الآخر هو استخدام local::lib للقيام بالقائمة الثقيلة لما هو مطلوب
ترتيب.

Q: 4.5 كيفية يمكن I القوة a تماما نظيف التركيب؟
لضمان تثبيت نظيف تمامًا لـ PDL، ستحتاج أولاً إلى حذف ملف
ملفات ومجلدات التثبيت الحالية. ستكون هذه جميع الدلائل المسماة "PDL" في ملف
مسار Perl @INC، والملفات المسماة "*Pdlpp*" في أي أدلة "مضمنة"، والبرامج "pdl،
pdldoc، وpdl2، وperldl، وpptemplate". ثم قم فقط بالإنشاء والتثبيت كالمعتاد. هذا هو
من الأسهل بكثير تتبع ذلك إذا قمت دائمًا بتثبيت "PDL" في موقع غير قياسي.
انظر س: 4.4 أعلاه.

الثنائية التوزيع


Q: 4.5 ابحث عن ثنائي التوزيعات . متاح؟
يمكن العثور على معلومات حول التوزيعات الثنائية لـ PDL علىhttp://pdl.perl.org> . في
توجد توزيعات ثنائية لـ PDL لنظام التشغيل Linux (RedHat وDebian)، وFreeBSD، وMac
OS X وWindows، على الرغم من أنهما قد لا يكونان الإصدار الأحدث.

إذا كان شخص ما مهتمًا بتوفير توزيعات ثنائية للبنى الأخرى، فهذا
سيكون موضع ترحيب كبير. أخبرنا على [البريد الإلكتروني محمي] القائمة البريدية. أيضًا
تحقق من مدير الحزم الخاص بتوزيع Linux الخاص بك حيث أن الكثير منها يتضمن الآن PDL. جزء في المليون لWIN32
الإصدارات (32 بت و 64 بت) متاحة أيضًا.

Q: 4.6 لا PDL يجري on لينكس؟ ماذا عن الصابون الحزم؟)
نعم، يعمل PDL على نظام Linux، وقد تم بالفعل إجراء الكثير من التطوير على نظام Linux.
علىhttp://pdl.perl.org> يمكنك العثور على روابط لحزم لبعض التخصصات
توزيعات. تحقق أيضًا من مدير الحزم الخاص بالتوزيع (yum، apt، urpmi، ...) باسم
تم العثور على PDL الآن من قبل العديد من هؤلاء.

Q: 4.7 لا PDL يجري مع ويندوز؟
يعتمد PDL بشكل جيد على Win32 باستخدام برامج التحويل البرمجي MinGW أو Microsoft. انظر win32/تثبيت ملف
في توزيع مصدر PDL للحصول على التفاصيل. لم يتم اختبار المترجمين الآخرين--الإدخال
مرحب به. يوجد أيضًا توزيع لـ PDL من خلال جزء في المليون الخاص بـ ActiveState، على الرغم من ذلك
قد لا يكون دائمًا الإصدار الأحدث. تم إنشاء PDL-2.006 خارج الصندوق على الفراولة
بيرل وActiveState بيرل.

CVS ، شخص سخيف، لأي لبس جاري التنفيذ التنمية


Q: 4.8 يستطيع I دولار فقط واحصل على خصم XNUMX% على جميع PDL بواسطة CVS؟
لا. تم إجراء تطوير PDL باستخدام مستودع CVS في الفترة من ديسمبر 1999 إلى أبريل 2009.
في أبريل 2009، تحول المشروع إلى نظام التحكم في إصدار Git (انظر:
<http://git-scm.com>).

Q: 4.9 كيفية do I دولار فقط واحصل على خصم XNUMX% على جميع PDL بواسطة شخص سخيف؟
افترض أنك قمت بتثبيت Git على نظامك وتريد تنزيل الكود المصدري للمشروع
في الدليل "PDL". للحصول على حق الوصول للقراءة فقط إلى المستودع، اكتب في
سطر الأوامر

git clone git://git.code.sf.net/p/pdl/code pdl-code

لمطوري PDL الرسميين، للحصول على حق الوصول للقراءة/الكتابة إلى نوع المستودع في ملف
سطر الأوامر

بوابة استنساخ SSH: //[البريد الإلكتروني محمي]/p/pdl/code pdl-code

Q: 4.10 I كان a مشكلة مع هيه بوابة الإصدار، كيف do I التحقق if شخص ما لديها المقدمة a
رقعة؟
يحتوي نظام Sourceforge على مدير التصحيح الذي يحتوي على تصحيحات لم يتم تشغيلها بعد
تم تطبيقه على التوزيع يمكن الوصول إلى هذا عبر قائمة التذاكر في PDL
صفحة مشروع Sourceforgehttp://sourceforge.net/projects/pdl>.

بالإضافة إلى ذلك، إذا لم تكن مشتركًا في القائمة البريدية، فتحقق من أرشيف القائمة البريدية
القوائم البريدية "pdl-porters" و"perldl". راجع السؤال 3.2 للحصول على التفاصيل.

Q: 4.11 I لديك حصلت المطور الوصول إلى شخص سخيف، كيف do I تحميل my التغييرات؟
أول شيء يجب عليك فعله هو قراءة وثائق Git ومعرفة الأساسيات عنها
شخص سخيف. هناك العديد من المصادر المتاحة على الانترنت. ولكن هنا الأساسيات:

قبل تحميل تغييراتك، قم بإيداعها في مستودعك

إضافة بوابة ...
ارتكاب

أو الجمع بين هذين مع

git commit -a

ثم اسحب أي تغييرات أجراها الآخرون

بوابة سحب الأصل

اختبر PDL قبل دفعه إلى المستودع الرئيسي. إذا تم كسر الرمز بالنسبة لك،
فمن المرجح أن يكون معطلاً بالنسبة للآخرين ولن يكونوا سعداء بالحصول على PDL الأخير الخاص بهم
فشل في البناء! ملحوظة: git يجعل من السهل جدًا الحفاظ على فرع منفصل للتطوير.
[سيتم تحديده لاحقًا، قم بتقديم معلومات حول كيفية القيام بذلك].

ثم قم بتحديث المستودع المشترك (على SF.net) بالتغييرات التي أجريتها

غيت دفع أصل المنشأ

PDL المصطلحات


Q: 5.1 ابحث عن is خيوط (هو PDL a قارئ الأخبار) ?
لسوء الحظ، في سياق PDL، يمكن أن يكون لمصطلح Threading نوعان مختلفان (لكن
ذات صلة) المعاني:

· عندما ذكر في تثبيت الاتجاهات وربما أثناء عملية البناء لدينا
المعنى المعتاد لعلوم الكمبيوتر لتعدد الخيوط في الاعتبار (مفيد بشكل أساسي في
آلات أو مجموعات متعددة المعالجات)

· PDL خيوط العمليات على العبث (كما هو مذكور في مستندات الفهرسة) هو
تكرار العملية الأساسية على الشرائح الفرعية المناسبة من العبث، على سبيل المثال الداخلية
المنتج "الداخلي $a, $b" لـ (3) pdl $a و (3,5,4) pdl $b يؤدي إلى (5,4) piddle
حيث تكون كل قيمة نتيجة منتج داخلي لـ (3) pdl مع شريحة فرعية (3).
من (3,5,4،XNUMX،XNUMX) piddle. للحصول على تفاصيل، تحقق من PDL::Indexing

يؤدي ترابط PDL بشكل طبيعي إلى رمز متوازي محتمل يمكنه الاستفادة من تعدد
الترابط على الأجهزة/الشبكات متعددة المعالجات؛ هناك لديك الاتصال بين
نوعين من استخدام هذا المصطلح.

Q: 5.2 ابحث عن is a عبث؟
حسنًا، متغيرات PDL العددية (وهي أمثلة لفئة معينة من كائنات Perl،
على سبيل المثال، الأشياء المباركة (انظر "perldoc perlobj") هي لغة شائعة تسمى PDL غالبًا ما تسمى
العبث (على سبيل المثال، تحقق من أرشيفات القائمة البريدية). خطأ، واضح؟ إذا لم يكن الأمر كذلك، ببساطة استخدم
على المدى عبث عندما تشير إلى متغير PDL (مثال لكائن PDL كما قد تفعل
تذكر) بغض النظر عن البيانات الفعلية التي يحتوي عليها متغير PDL.

تقني أسئلة


Q: 6.1 ابحث عن is بيردل؟ ابحث عن is pdl2؟
في بعض الأحيان يتم استخدام "perldl" ("pdl2") كمرادف لـ PDL. بالمعنى الدقيق للكلمة، ومع ذلك،
الاسم "perldl" ("pdl2") محجوز للقشرة الصغيرة التي تأتي مع PDL
التوزيع ومن المفترض أن يتم استخدامه في النماذج الأولية التفاعلية لنصوص PDL.
للحصول على تفاصيل تحقق من perldl أو pdl2.

Q: 6.2 كيفية do I دولار فقط واحصل على خصم XNUMX% على جميع على الانترنت مساعدة لـ PDL؟
ما عليك سوى كتابة "مساعدة" (الاختصار = "؟") في موجه الصدفة "pdl2" والمتابعة من هناك.
أمر مفيد آخر هو الأمر "مناسب" (الاختصار = "؟؟"). جرب "العرض التوضيحي" أيضًا
الأمر في غلاف "perldl" أو "pdl2" إذا كنت جديدًا على PDL.

بالتلاعب OF بيدلز


Q: 6.3 I تريد إلى الوصول هيه ثلث العنصر of a PDL لكن $أ[2] لا العمل ?!
راجع إجابة السؤال التالي لماذا لا يعمل بناء جملة صفيف Perl العادي مع العبث.

Q: 6.4 تشير مستندات قول العبث . بعض نوع of مجموعة مصفوفة. لكن لماذا لا هيه بيرل مجموعة بناء الجملة
العمل مع العبث then ?
حسنًا، أنت على حق بطريقة ما. تقول المستندات أنه يمكن التفكير في العبث في المصفوفات. أكثر
على وجه التحديد، تقول ( PDL::QuickStart ):

أجد أنه عند استخدام لغة بيانات Perl يكون مفيدًا للغاية
للتفكير في متغيرات Perl @x القياسية على أنها "قوائم" عامة
"الأشياء" ومتغيرات PDL مثل $x كـ "مصفوفات" والتي يمكن أن تكون
الواردة في القوائم أو التجزئة.

لذلك، في حين أنه يمكن اعتبار الألغاز بمثابة نوع من المصفوفة متعددة الأبعاد، فهي كذلك ليس
المصفوفات بالمعنى بيرل. بالأحرى، من وجهة نظر بيرل، فهي مميزة بعض الشيء
class (الذي يتم تنفيذه حاليًا كمؤشر غير شفاف لبعض الأشياء في الذاكرة) و
لذلك تحتاج إلى وظائف خاصة (أو "طرق" إذا كنت تستخدم إصدار OO) للوصول
عناصر فردية أو مجموعة من العناصر. الوظائف/طرق التحقق موجودة "في" /
"set" (راجع قسم "الأقسام" في PDL::QuickStart ) أو وظيفة "الشريحة" القوية
والأصدقاء (راجع PDL::Slices وPDL::Indexing وخاصة PDL::NiceSlice ).

أخيرًا، لإرباكك تمامًا، يمكنك الحصول على مصفوفات Perl من العبث، على سبيل المثال يمكن لـ $spec[3]
قم بالإشارة إلى ملف pdl يمثل، على سبيل المثال، الطيف، حيث $spec[3] هو العنصر الرابع في
قائمة بيرل (أو المصفوفة؛) @spec . قد يكون هذا مربكًا ولكنه مفيد جدًا!

Q: 6.5 كيفية do I سلسل العبث؟
سيحاول معظم الأشخاص تكوين ألغاز جديدة من ألغاز قديمة باستخدام بعض الاختلافات في
theme: "$a = pdl([$b, 0, 2])" لكن هذا لا يعمل. طريقة ربط الـpiddles هي
لاستخدام الدالة "cat" (انظر أيضًا "إلحاق" و"غراء"). وبالمثل يمكنك تقسيم الpiddles
باستخدام الأمر "الكلب".

Q: 6.6 أحيانا I am الحصول على هؤلاء غريب النتائج متى استخدام في المكان العمليات؟
يرتبط هذا السؤال بوظيفة "inplace". من الوثائق (انظر
بدل::البدء السريع):

معظم الوظائف، على سبيل المثال log()، ترجع نتيجة وهي a
تحويل حجتهم. وهذا يجعل للخير
ممارسة البرمجة. ومع ذلك يمكن القيام بالعديد من العمليات
"في المكان" وقد يكون ذلك مطلوبًا عند وجود صفائف كبيرة
الاستخدام والذاكرة في أعلى مستوياته. لهذه الظروف
يتم توفير عامل التشغيل inplace() والذي يمنع النسخة الإضافية
ويسمح بتعديل الوسيطة. على سبيل المثال:

$x = سجل($صفيف); # $صفيف لم يتأثر
تسجيل( inplace($bigarray)); تم تغيير # $bigarray في الموقع

وأيضا من الوثيقة !!:

من الواضح عند استخدامها مع بعض الوظائف التي لا يمكن أن تكون
يتم تطبيقها في الموقع (على سبيل المثال convolve()) وقد تحدث تأثيرات غير متوقعة
يحدث!

Q: 6.7 ابحث عن is غريب استعمال of هيه سلسلة سلسلة عامل ".=" in PDL
نصوص؟
راجع السؤال التالي حول المهمة في PDL.

Q: 6.8 لماذا . هناك اثنان مختلف أنواع of مهمة in PDL ?
ويرجع ذلك إلى حقيقة أن عامل التعيين "=" يسمح فقط حاليًا بذلك
الحمولة الزائدة المقيدة. بالنسبة لبعض أغراض PDL، فقد تبين أنه من الضروري الحصول عليها
مزيد من التحكم في التحميل الزائد لمشغل المهمة. لذلك، يطلع PDL على
عامل التشغيل ".=" لأنواع معينة من المهام.

Q: 6.9 كيفية do I طقم a طقم of القيم in a عبث؟
في Perl 5.6.7 والإصدارات الأحدث، يمكن إجراء هذه المهمة باستخدام الإجراءات الفرعية lvalue:

pdl> $ a = تسلسل(5)؛ ص $أ
[0 1 2 3 4]
pdl> $a->slice('1:2') .= pdl([5,6])
pdl> p $ a
[0 5 6 3 4]

راجع PDL::Lvalue لمزيد من المعلومات. يدعم PDL أيضًا بناء جملة شريحة يشبه المصفوفة عبر ملف
PDL::وحدة NiceSlice:

pdl> $a(1:2) .= pdl([5,6])
pdl> p $ a
[0 5 6 3 4]

مع إصدارات Perl السابقة للإصدار 5.6.7 or متى تشغيل مع هيه بيرل المصحح هذا يجب أن
يتم ذلك باستخدام متغير مؤقت:

pdl> $ a = تسلسل(5)؛ ص $أ
[0 1 2 3 4]
pdl> $tmp = $a->slice('1:2'); ف $تمب؛
[1 2]
pdl> $tmp .= pdl([5, 6]); #ملاحظة .= !!
pdl> p $ a
[0 5 6 3 4]

ويمكن أيضًا تحويل ذلك إلى تعبير واحد، والذي غالبًا ما يُرى في كود PDL:

pdl> ($tmp = $a->slice('1:2')) .= pdl([5,6])
pdl> p $ a
[0 5 6 3 4]

Q: 6.10 يستطيع I تستخدم a عبث in a شرطي تعبير؟
نعم يمكنك ذلك، ولكن ليس بالطريقة التي ربما حاولت بها أولاً. ليس من الممكن استخدام أ
piddle مباشرة في تعبير شرطي نظرًا لأن هذا عادةً ما يتم تعريفه بشكل سيئ. بدلاً من
يحتوي PDL على وظيفتين مفيدتين للغاية: "any" و"all". استخدم هذه لاختبار ما إذا كان هناك أي أو كل شيء
العناصر الموجودة في اللغز تستوفي بعض المعايير:

pdl> $a=pdl ( 1, -2, 3);
pdl> print 'يحتوي $a على عنصر واحد على الأقل < 0' if (any $a < 0);
يحتوي $a على عنصر واحد على الأقل <0

pdl> print '$a ليس موجبًا محددًا' إلا إذا (all $a > 0);
$a ليس موجبًا محددًا

Q: 6.11 منطقي مشغلي العبث - '||' "&&" لا العمل!
إنها مشكلة شائعة أن تحاول إنشاء مصفوفة قناع أو شيء مشابه باستخدام ملف
بناء مثل

$mask = who($piddle > 1 && $piddle < 2); # غير صحيح

هذه هل ليس عمل! ما تبحث عنه هو المختصة بالبت العوامل المنطقية '|' و
'&' والتي تعمل على أساس كل عنصر على حدة. لذا فالأمر بسيط جدًا حقًا: لا تستخدمه
العوامل المنطقية على الحيل متعددة العناصر نظرًا لأن ذلك غير منطقي حقًا، بدلاً من ذلك
اكتب المثال كالتالي

$mask = who($piddle > 1 & $piddle < 2);

الذي يعمل بشكل صحيح.

التبادل المتقدم TOPICS


Q: 6.12 ابحث عن is a فارغة PDL ?
"null" هو رمز خاص لـ "piddle الفارغ". يمكن استخدام pdl فارغًا للإشارة إلى PDL
وظيفة أنه يجب إنشاء piddle بحجم مناسب ومكتوب. فارغة يمكن العبث
يمكن استخدامها في الأماكن التي تتوقع فيها وظيفة PDL الناتج or مؤقت جدال. الناتج
مؤقت يتم وضع علامة على الحجج في توقيع لوظيفة PDL مع "[o]" و
مؤهلات "[t]" (راجع السؤال التالي إذا كنت لا تعرف ما هي توقيع من وظيفة PDL
يكون). على سبيل المثال، يمكنك استدعاء الدالة "sumover" كما يلي:

مجموع $a, $b=null;

وهو ما يعادل

$b = مجموع $a;

إذا كان هذا لا يزال غامضًا بعض الشيء، فتحقق من PDL::Indexing وPDL::PP للحصول على تفاصيل حول الاتصال
الاتفاقيات، توقيع خيوط (انظر أيضًا أدناه).

Q: 6.13 ابحث عن is هيه توقيع of a PDL وظيفة ?
تشير توقيع تعتبر الوظيفة مفهومًا مهمًا في PDL. العديد (ولكن ليس كل) PDL
وظيفة لديها توقيع الذي يحدد الحجج و (الحد الأدنى)
الأبعاد. على سبيل المثال، انظر إلى توقيع الدالة "الحد الأقصى":

'أ (ن)؛ [س] ب؛'

هذا يعني أن "الحد الأقصى" يأخذ وسيطتين، أولهما (على الأقل) واحد-
الأبعاد بينما الثاني هو صفر الأبعاد و الناتج الوسيطة (التي تم وضع علامة عليها بواسطة
المؤهل "[o]"). إذا تم استدعاء الوظيفة باستخدام piddles ذات البعد الأعلى فإن
سيتم استدعاء الوظيفة بشكل متكرر باستخدام شرائح من هذه العبثات المناسبة
البعد (وهذا ما يسمى خيوط في بي دي إل).

للحصول على تفاصيل ومزيد من التوضيحات، راجع PDL::Indexing وPDL::PP .

Q: 6.14 كيفية يمكن I فئة فرعية (يرث من عند) العبث؟
الإجابة المختصرة هي: اقرأ PDL::Objects (على سبيل المثال، اكتب "help PDL::Objects" في بيرلدل or
pdl2 الصدف).

الإجابة الأطول (مستخرجة من PDL::Objects ): نظرًا لأن كائن PDL عبارة عن كائن معتم
بالإشارة إلى بنية C، ليس من الممكن توسيع فئة PDL عن طريق بيانات إضافية على سبيل المثال
تصنيف فرعي (كما يمكنك أن تفعل مع كائن Perl القائم على التجزئة). للتحايل على هذه المشكلة
يتمتع PDL بدعم مدمج لتوسيع فئة PDL عبر لديه- أ علاقة مباركة
تجزئات. يمكنك الحصول على هاس-أ لتتصرف مثل هو ببساطة حيث تقوم بتعيين كائن PDL
إلى السمة المسماة "PDL" وأعد تعريف الطريقة تهيئة (). على سبيل المثال:

حزمة FOO ؛

FOO :: ISA = qw (PDL) ؛
التهيئة الفرعية {
صفي $ = التحول ؛
نفسي $ = {
create_time => time ()، # ملحق ضروري :-)
PDL => PDL->null، # يستخدم لتخزين كائن PDL
};
بارك $ self، $ class؛
}

للحصول على مثال آخر، تحقق من البرنامج النصي ر/subclass.t في توزيع PDL.

Q: 6.15 ابحث عن on أرض is تدفق البيانات أشياء ?
Dataflow هو مشروع تجريبي لا داعي للقلق بشأنه (it
يجب ألا تتداخل مع البرمجة المعتادة). ومع ذلك، إذا كنت تريد أن تعرف، لديك
انظر إلى PDL::Dataflow . هناك تطبيقات ستستفيد من هذه الميزة (و
إنه يعمل بالفعل خلف الكواليس).

Q: 6.16 ابحث عن is بدل::PP؟
إجابة بسيطة: PDL::PP عبارة عن رابط بين المكتبات الخارجية وPDL ومختصر
لغة لكتابة وظائف PDL.

إجابة أطول قليلاً: يتم استخدام PDL::PP لتجميع تعريفات موجزة جدًا في XSUB
الإجراءات المطبقة في لغة C والتي يمكن استدعاؤها بسهولة من PDL والتي يتم تنفيذها تلقائيًا
دعم الخيوط وتدفق البيانات وأشياء أخرى دون الحاجة إلى القلق بشأن ذلك.

لمزيد من التفاصيل، راجع PDL::PP والقسم أدناه الخاص بامتدادات PDL.

Q: 6.17 ابحث عن يحدث متى I لديك عدة المراجع إلى هيه نفسه PDL موضوع in مختلف
المتغيرات (استنساخ، إلخ؟) ?
تتصرف Piddles مثل مراجع Perl في كثير من النواحي. لذلك عندما تقول

$a = بدل [0,1,2,3];
$ب = $أ؛

ثم يشير كل من $b و$a إلى نفس الكائن، على سبيل المثال ثم القول

$ب++;

*لن* تنشئ نسخة من اللغز الأصلي، بل ستزيد فقط في مكانه، وهو ما أنت عليه
يمكن أن تقنع نفسك بالقول

طباعة $أ؛
[1 2 3]

لا ينبغي الخلط بين هذا وبين تدفق البيانات الذي يربط عدة كائنات *مختلفة*
يتم نشر تغييرات البيانات بين التلاعبات المرتبطة بذلك (على الرغم من أنه في ظل ظروف معينة
في الظروف، يمكن لعناصر تدفق البيانات مشاركة نفس البيانات فعليًا).

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

وظيفة فرعية {
بلدي $pdl = التحول؛
إذا ($pdl->is_inplace) {
$pdl->وضع في مكان(0)
{} آخر
# تعديل نسخة بشكل افتراضي
$pdl = $pdl->نسخ
}
$pdl->set(0,0);
إرجاع $pdl;
}

متفرقات


Q: 6.18 ابحث عن I / O صيغ . أيد by PDL ?
تدعم الإصدارات الحالية من PDL بالفعل عددًا لا بأس به من تنسيقات الإدخال/الإخراج المختلفة.
ومع ذلك، ليس من الواضح دائمًا أي وحدة تنفذ أي التنسيقات. لمساعدتك في العثور على
الوحدة المناسبة للتنسيق الذي تحتاجه، فيما يلي قائمة قصيرة بالقائمة الحالية لـ
تنسيقات الإدخال/الإخراج وتلميح في أي وحدة يمكن العثور على التنفيذ:

· يتم تنفيذ تنسيق الإدخال/الإخراج الخام السريع (الثنائي) لـ PDL بواسطة وحدة FastRaw

· وحدة FlexRaw تطبق أساليب عامة لإدخال وإخراج البيانات الخام
صفائف. وبشكل خاص، تم تصميمه لقراءة الإخراج من FORTRAN 77 UNFORMATTED
الملفات ووظيفة "الكتابة" ذات المستوى المنخفض في لغة C، حتى لو كانت الملفات مضغوطة أو
com.gzipped.

من الممكن أن يتم تضمين وظيفة FastRaw في وحدة FlexRaw
في وقت ما في المستقبل.

· يتم تنفيذ FITS I/O بواسطة وظائف "wfits"/"rfits" في PDL::IO::FITS .

· يمكن تحقيق الإدخال/الإخراج لملف ASCII بتنسيقات مختلفة باستخدام "rcols" و"rgrep"
الوظائف، أيضًا في PDL::IO::Misc .

· PDL::IO::Pic ينفذ واجهة لمرشحات NetPBM/PBM+ لقراءة/كتابة العديد من المرشحات
تنسيقات الصور الشائعة؛ كما يتم دعم إخراج تسلسلات الصور كأفلام MPEG،
صور GIF المتحركة ومجموعة واسعة من تنسيقات الفيديو الأخرى.

· في CPAN يمكنك العثور على وحدة PDL::NetCDF التي تعمل مع الإصدار الحالي
نسخة PDL 2.006.

لمزيد من التفاصيل، راجع القائمة الأكثر تفصيلاً في وثائق PDL::IO أو ملف
وثائق للوحدات الفردية.

Q: 6.19 كيفية يمكن I كومة a طقم of 2D المصفوفات (صور) إلى a 3D عبث؟
بافتراض أن جميع المصفوفات لها نفس الحجم وبتنسيق ما يتم التعرف عليه بواسطة "rpic" (انظر
PDL::IO::Pic ) يمكنك القول:

استخدم PDL::IO::Pic;
@names = qw/name1.tif .... nameN.tif/; # بعض أسماء الملفات
$dummy = PDL->rpic($names[0]);
$cube = PDL->zeroes($dummy->type,$dummy->dims,$#names+1); #صنع مجسم ثلاثي الأبعاد
لـ (0..$#أسماء) {
# هذه هي مهمة الشريحة
($tmp = $cube->slice(":,:,($_)")) .= PDL->rpic($names[$_]);
}

or

$cube(:,:,($_)) .= PDL->rpic($names[$_]);

لتعيين الشريحة باستخدام بناء جملة PDL::NiceSlice الجديد وتعيينات Lvalue.

تقوم حلقة for بقراءة الصور الفعلية في كائن ثنائي الأبعاد مؤقت تكون قيمه بعد ذلك
تم تعيينه (باستخدام عامل التشغيل ".=" المحمل بشكل زائد) للشرائح المناسبة من العرض ثلاثي الأبعاد
$ مكعب .

Q: 6.20 في . تجربه بالعربي ملفات لـ هيه الرسومات وحدات؟
تنطبق هذه الإجابة بشكل أساسي على PDL::Graphics::TriD (رسومات ثلاثية الأبعاد مستقلة عن جهاز PDL
model) وهو الأصعب في هذا الصدد. تجد بعض البرامج النصية للاختبار في
العروض التوضيحية/TriD في التوزيع. هناك أيضا 3dtest.pl line3d.pl في ال
دليل PDL/مثال/TriD. بعد إنشاء PDL، يمكنك القيام بما يلي:

بيرل -Mblib مثال/TriD/3dtest.pl

بيرل -Mblib مثال/TriD/line3d.pl

لتجربة برنامجي اختبار TriD. إنهم يمارسون وظيفة TriD واحدة فقط لكل منهم باستثناء وظائفهم
البساطة تجعل من السهل تصحيح الأخطاء إذا لزم الأمر باستخدام مصحح أخطاء Perl، راجع perldbug.

يمكن تشغيل البرامج الموجودة في الدليل التجريبي بسهولة أكبر من "perldl" أو "pdl2"
القشرة التفاعلية:

بيرل -Mblib Perldl أو Perl -Mblib Perldl2/pdl2

متبوعًا بـ "demo 3d" أو "demo 3d2" عند المطالبة. "العرض التوضيحي" في حد ذاته سيعطيك قائمة
من عروض PDL المتاحة.

يمكنك تشغيل البرامج النصية للاختبار في دليل Demos/TriD يدويًا عن طريق التغيير إلى ذلك
الدليل وتشغيله

بيرل -Mblib

حيث "ملف الاختبار" ؛ يجب أن يتطابق مع النموذج "test[3-9].p" وشاهد النتائج. بعض
يجب أن تظهر الاختبارات نافذة حيث يمكنك التحكم (تدوير) الكائنات ثلاثية الأبعاد باستخدام
الفأر. حاول استخدام زر الماوس 1 لتحويل الكائنات إلى مساحة ثلاثية الأبعاد، وزر الماوس 3 لتحويلها إلى مساحة ثلاثية الأبعاد
قم بالتكبير والتصغير، و"q" للتقدم إلى المرحلة التالية من الاختبار.

Q: 6.21 ابحث عن is ثلاثي الأبعاد or بدل::ثلاثي or PDL::الرسومات::TriD؟
يجب أن تكون مثل هذه الأسئلة شيئًا من الماضي مع وجود نظام المساعدة عبر الإنترنت PDL
مكان. فقط حاول (بعد التثبيت):

الأمم المتحدة*س> pdl2
pdl> بخصوص trid

تحقق من النتائج بحثًا عن نتائج واعدة ثم حاول البحث عن بعضها، على سبيل المثال

pdl> مساعدة PDL::Graphics::TriD

لاحظ أن الحالة مهمة مع "المساعدة" ولكن ليس مع "مناسبة".

Q: 6.22 بجيبلوت هل ليس اكتب خارج بابوا نيو غينيا الملفات.
هناك عدة مصادر للمشاكل في ملفات PGPLOT وPNG. أولاً، عند تجميع
مكتبات pgplot، تأكد من إلغاء تعليق إدخالات PNG في ملف drivers.list ملف. ثم
عند تشغيل "make" ربما حصلت على خطأ مثل

ج

لإصلاح ذلك، ابحث عن السطر في "makefile" الذي يبدأ بـ "pndriv.o:" (وهو قريب من
قاع). قم بتغيير، على سبيل المثال، ./png.h إلى /usr/include/png.h، إذا كان هذا هو مكان رأسك
الملفات هي (لديك حزمتي libpng و libz devel، أليس كذلك؟). افعل هذا للجميع
أربعة إدخالات على هذا السطر، ثم ارجع وقم بتشغيل "make".

ثانيًا، إذا كان لديك بالفعل وحدة PGPLOT Perl وPDL مثبتتين، فمن المحتمل أنك حاولت ذلك
لكتابة ملف PNG وحصلت على رسالة خطأ فادحة مثل:

ج

وذلك لأن وحدة PGPLOT Perl لا ترتبط تلقائيًا بـ png وz
المكتبات. لذلك عندما تقوم بتثبيت وحدة PGPLOT Perl (الإصدار 2.19) من CPAN،
لا تقم "بتثبيت PGPLOT"، ولكن فقط "احصل على PGPLOT". ثم الخروج من CPAN ويدويا
قم بتثبيت PGPLOT، واستدعاء ملف makefile كالتالي:

ج/ البيرة / ليب>

بافتراض وجود ملفات مثل /usr/lib/libpng.so.*، /usr/lib/libz.so.*. ثم افعل
المعيار "make;make test;make install;" تسلسل. الآن يمكنك كتابة ملفات png من
بدل!

إمتداد OF PDL


Q: 7.1 I am أبحث لـ a صفقة إلى do XXX in بدل. في سوف I بحث لـ ذلك؟
المحطة الأولى هي مرة أخرى "perldl" أو "pdl2" والمساعدة عبر الإنترنت أو وثائق PDL.
يوجد بالفعل الكثير من الوظائف في PDL والتي قد لا تكون على علم بها. ال
أسهل طريقة للبحث عن الوظيفة هي استخدام الأمر "apropos":

pdl> بخصوص "لا يتجزأ"
ceil تقريب إلى قيم متكاملة بتنسيق الفاصلة العائمة
Floor تقريب إلى قيم متكاملة بتنسيق الفاصلة العائمة
مشروع شامل عبر جزء لا يتجزأ من أبعاد N-1
rint التقريب إلى القيم المتكاملة بتنسيق الفاصلة العائمة

نظرًا لأن الأمر المناسب ليس محرك بحث متطور، تأكد من أنك تبحث في ملف
اثنين من المواضيع ذات الصلة واستخدام عبارات قصيرة.

ومع ذلك، هناك احتمال كبير أن ما تحتاجه ليس جزءًا من توزيع PDL. أنت
ومن ثم يُنصح بالتحقق من ذلكhttp://pdl.perl.org> حيث توجد قائمة بالحزم
باستخدام بدل. إذا لم يحل ذلك مشكلتك، اسأل في القائمة البريدية، إذا لم يكن هناك شيء آخر
قد تحصل على مساعدة تتيح لك ربط الحزمة الخاصة بك مع PDL بنفسك، انظر
أيضا السؤال التالي.

Q: 7.2 يستطيع I الوصول my ج/فورتران مكتبة الروتين in PDL؟
نعم يمكنك ذلك، في الحقيقة الأمر بسيط للغاية بالنسبة للعديد من التطبيقات البسيطة. ما تريده هو
معالج PDL المسبق PP (PDL::PP). سيسمح لك ذلك بإنشاء واجهة بسيطة لملف C
نمط.

الوظيفتان اللتان تحتاجان إلى تعلمهما (على الأقل أولاً) هما "pp_def" الذي يحدد
واجهة الاتصال للوظيفة، وتحديد معلمات الإدخال والإخراج، وتحتوي على
الكود الذي يرتبط بالمكتبة الخارجية. الأمر الآخر هو "pp_end" الذي ينتهي
تعريفات PP للحصول على تفاصيل، راجع صفحة الدليل PDL::PP، ولكن لدينا أيضًا ملف
مثال هنا.

مزدوج Eight_sum(int n)
{
أنا
مجموع مزدوج، س؛

المبلغ = 0.0؛ س=0.0;
لـ (i=1;i<=n;i++) {
س++;
مجموع += x/((4.0*x*x-1.0)*(4.0*x*x-1.0));
}
إرجاع 1.0/مجموع؛
}

سنعرض لك هنا مثالاً لكيفية ربط كود C مع PDL. هذا هو الاول
مثال وسيوضح لك كيفية تقريب الرقم 8 ...

يظهر رمز C أعلاه وهو عبارة عن دالة بسيطة تقوم بإرجاع رقم مزدوج وتتوقع حدوث خطأ
عدد صحيح - عدد المصطلحات في المجموع - كمدخل. يمكن تعريف هذه الوظيفة في
المكتبة أو، كما نفعل هنا، كوظيفة مضمنة.

سنقوم بتأجيل كتابة Makefile إلى وقت لاحق. أولاً سنقوم بإنشاء ملف ".pd"
ملف. هذا هو الملف الذي يحتوي على رمز PDL::PP. نحن نسمي هذا "ثمانية.pd".

#
# pp_def يحدد وظيفة PDL.
#
pp_addhdr (
'
مزدوج Eight_sum(int n)
{
أنا
مجموع مزدوج، س؛

المبلغ = 0.0؛ س=0.0;
لـ (i=1;i<=n;i++) {
س++;
مجموع += x/((4.0*x*x-1.0)*(4.0*x*x-1.0));
}
إرجاع 1.0/مجموع؛

}
')؛

ص_ديف (
'ثمانية'،
بارس => 'int a(); مزدوج [س] ب ()؛'،
الكود => '$b()=ثمانية_sum($a());'
);

# تأكد دائمًا من الانتهاء من إقرارات PP الخاصة بك
#ص_تم

pp_done();

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

لكن الأمر الأكثر أهمية في هذا المثال هو الأمر "pp_def". الحجة الأولى
لهذا هو اسم الدالة الجديدة ثمانية ، ثم تأتي التجزئة التي هي اللحم الحقيقي:

· وهذا يعطي معلمات الإدخال (هنا "أ") ومعلمات الإخراج (هنا "ب"). ال
تتم الإشارة إلى الأخير بواسطة محدد "[o]". يمكن أن يكون لكلا الوسيطتين نوع
المواصفات كما هو موضح هنا.

يمكن تحديد العديد من الاختلافات والمزيد من المرونة في الواجهة. يرى
"perldoc PDL::PP" للحصول على التفاصيل.

· يحتوي رمز التبديل هذا على الكود الذي يجب تنفيذه. كما ترون هذا هو بالأحرى
مزيج غريب من C وPerl، ولكنه في الأساس يشبه تمامًا ما تكتبه في C، ولكن
يتم التعامل مع المتغيرات التي تم تمريرها من PDL بشكل مختلف ويجب الإشارة إليها
إلى مع "$" السابقة.

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

أخيرًا لاحظ استدعاء "pp_done()" في نهاية الملف. وهذا ضروري في جميع PP
الملفات.

نعم. إذن لدينا الآن ملف يحتوي على رمز نرغب بشدة في استخدامه في Perl عبر PDL. ل
للقيام بذلك نحن بحاجة إلى ترجمة الوظيفة، وللقيام بذلك نحتاج إلى Makefile.

استخدم PDL::Core::Dev;
استخدام ExtUtils :: MakeMaker ؛
PDL::Core::Dev->import();

$package = ["eight.pd",Eight,PDL::Eight];
%hash = pdlpp_stdargs($package);

WriteMakefile( %hash );

sub MY::postamble {pdlpp_postamble($package)};

يجب أن يتم وضع الكود أعلاه في ملف يسمى Makefile.PL، والذي يجب أن يتم استدعاؤه لاحقًا
بطريقة بيرل القياسية: "Perl Makefile.PL" . يجب أن يمنحك هذا ملف Makefile و
يجب أن يقوم تشغيل "make" بتجميع الوحدة النمطية لك وسيقوم "make install" بتثبيتها من أجلك
أنت.

Q: 7.3 كيفية يمكن I الواجهة صفقة XXX in PDL؟
يرتبط هذا السؤال ارتباطًا وثيقًا بالسؤال السابق، وكما قلنا هناك، PDL::PP
المعالج المسبق هو الطريقة القياسية لربط الحزم الخارجية مع PDL. أكثر
الطريقة المعتادة لاستخدام PDL::PP هي كتابة روتين واجهة قصير، راجع PDL::PP perldoc
الصفحة والإجابة على السؤال السابق على سبيل المثال.

ومع ذلك، من الممكن أيضًا ربط الحزمة بـ PDL عن طريق إعادة كتابة وظيفتك فيها
PDL::PP مباشرة. يمكن أن يكون هذا مناسبًا في مواقف معينة، خاصة إذا كان لديك
روتين يتوقع وظيفة كمدخل وترغب في تمرير الوظيفة إلى Perl
وظيفة للراحة.

تعد صفحة PDL::PP perldoc هي المصدر الرئيسي للمعلومات لكتابة ملحقات PDL::PP،
ولكن من المفيد جدًا البحث عن ملفات توزيع PDL أكبر عدد من الملفات الأساسية
تتم كتابة الوظائف في PDL::PP. ابحث عن الملفات التي تنتهي بـ ".pd" وهو تنسيق عام
اللاحقة المقبولة لملفات PDL::PP. ولكن لدينا أيضًا مثال بسيط هنا.

سيوضح لك المثال التالي كيفية كتابة دالة بسيطة يتم تشغيلها تلقائيًا
يسمح خيوط. لجعل هذا موجزا، المثال هو وظيفة تافهة تقريبا، ولكن
الهدف هو إظهار أساسيات كتابة واجهة PDL::PP.

سنكتب دالة بسيطة تحسب الحد الأدنى والحد الأقصى والمتوسط ​​لـ a
عبث. على جهازي، تكون الوظيفة الناتجة أسرع 8 مرات من الوظيفة المضمنة
"الإحصائيات" (بالطبع تحسب الأخيرة أيضًا الوسيط).

دعنا ننتقل مباشرة. إليك الكود (من ملف يسمى "quickstats.pd" )

#
pp_def ("الإحصائيات السريعة"،
بارس => 'أ(ن); [س]متوسط(); [س] ماكس ()؛ [س] دقيقة ()'،
Code => '$GENERIC(a) curmax, curmin;
$GENERIC(a) tmp=0;
حلقة (ن) %{
تمة += $a();
إذا (!n || $a() > curmax) { curmax = $a();}
إذا (!n || $a() < curmin) { curmin = $a();}
%}
$avg() = tmp/$SIZE(n);
$max() = curmax;
$min() = كورمين;
'
);

pp_done();

قد يبدو ما ورد أعلاه وكأنه مزيج مربك من C وPerl، ولكن وراءه شيء غريب
بناء الجملة يكمن في لغة قوية جدا. دعونا نأخذها سطراً سطراً.

يعلن السطر الأول أننا بدأنا تعريف دالة PDL:PP تسمى
"الإحصائيات السريعة".

السطر الثاني مهم جدًا لأنه يحدد معلمات الإدخال والإخراج الخاصة بالملف
وظيفة. تخبرنا a(n) بوجود معلمة إدخال واحدة سنشير إليها باسم "a"
والذي من المتوقع أن يكون متجهًا للطول n (وبالمثل المصفوفات، سواء المربعة أو
سيتم كتابة المستطيل كـ "a(n,n)" و"a(n,m)" على التوالي). للإشارة إلى ذلك
Something عبارة عن معلمة إخراج نضع "[o]" أمام أسمائهم، لذلك نرجع مرة أخرى
بالنسبة للكود، نرى أن المتوسط، والحد الأقصى، والدقيقة هي ثلاث معلمات إخراج، وكلها كذلك
العددية (نظرًا لعدم وجود حجم أبعاد محدد لها.

يبدأ السطر الثالث تعريف الكود الذي هو في الأساس لغة C خالصة ولكن مع اثنين من
وظائف مريحة. $GENERIC هي دالة تُرجع النوع C للوسيطة الخاصة بها -
هنا معلمة الإدخال أ. وبالتالي فإن السطرين الأولين من قسم الكود متغيران
إعلانات.

إن بنية الحلقة (n) هي دالة ملائمة تتكرر عبر البعد المسمى n
قسم المعلمة داخل هذه الحلقة نقوم بحساب المجموع التراكمي للمدخلات
المتجه وتتبع القيم القصوى والدنيا. وأخيرا نقوم بتعيين النتيجة
القيم إلى معلمات الإخراج.

أخيرًا انتهينا من إعلان وظيفتنا باستخدام "pp_done()".

لتجميع وظيفتنا الجديدة، نحتاج إلى إنشاء ملف Makefile، والذي سنقوم بإدراجه منذ ذلك الحين
تمت مناقشة إنشائها في سؤال سابق.

استخدم PDL::Core::Dev;
استخدام ExtUtils :: MakeMaker ؛
PDL::Core::Dev->import();

$package = ["quickstats.pd",Quickstats,PDL::Quickstats];
%hash = pdlpp_stdargs($package);

WriteMakefile( %hash );

sub MY::postamble {pdlpp_postamble($package)};

مثال Makefile.PL

يجب الآن تجميع وظيفتنا الإحصائية الجديدة باستخدام طريقة Perl المجربة والمختبرة: "Perl
Makefile.PL; يصنع" .

يجب عليك تجربة هذه الوظيفة، وتغيير الحسابات والمدخلات والمخرجات
حدود. بالتزامن مع صفحة PDL::PP perldoc، من المفترض أن يسمح لك ذلك بسرعة
اكتب المزيد من الإجراءات المتقدمة مباشرة في PDL::PP.

استخدم PDL::FAQp عبر الإنترنت باستخدام خدمات onworks.net


خوادم ومحطات عمل مجانية

قم بتنزيل تطبيقات Windows و Linux

  • 1
    فيزر
    فيزر
    Phaser هو مفتوح سريع ومجاني وممتع
    مصدر إطار عمل لعبة HTML5 الذي يوفر
    عرض WebGL و Canvas عبر
    متصفحات الويب لسطح المكتب والجوال. ألعاب
    يمكن المشاركة ...
    تحميل Phaser
  • 2
    محرك VASSAL
    محرك VASSAL
    VASSAL هو محرك لعبة للإبداع
    النسخ الإلكترونية للسبورة التقليدية
    وألعاب الورق. يوفر الدعم ل
    عرض قطعة اللعبة والتفاعل ،
    و...
    قم بتنزيل محرك VASSAL
  • 3
    OpenPDF - شوكة iText
    OpenPDF - شوكة iText
    OpenPDF هي مكتبة جافا للإنشاء
    وتحرير ملفات PDF باستخدام LGPL و
    ترخيص MPL مفتوح المصدر. OpenPDF هو ملف
    LGPL / MPL وريث مفتوح المصدر لـ iText ،
    ا...
    قم بتنزيل OpenPDF - Fork of iText
  • 4
    ساجا جيس
    ساجا جيس
    SAGA - النظام الآلي
    التحليلات الجيولوجية - هو جغرافي
    برنامج نظام المعلومات (GIS) مع
    قدرات هائلة للبيانات الجغرافية
    المعالجة وآنا ...
    تنزيل SAGA GIS
  • 5
    Toolbox for Java / JTOpen
    Toolbox for Java / JTOpen
    يعد IBM Toolbox for Java / JTOpen ملف
    مكتبة من فئات Java التي تدعم
    العميل / الخادم وبرمجة الإنترنت
    نماذج لنظام يعمل بنظام التشغيل OS / 400 ،
    i5 / OS ، س ...
    تنزيل Toolbox for Java / JTOpen
  • 6
    D3.js
    D3.js
    D3.js (أو D3 للمستندات المستندة إلى البيانات)
    هي مكتبة جافا سكريبت تسمح لك
    لإنتاج بيانات ديناميكية وتفاعلية
    تصورات في متصفحات الويب. مع D3
    أنت...
    تنزيل D3.js
  • أكثر "

أوامر لينكس

Ad