يعد تحليل الملفات النصية أحد الأسباب التي تجعل بيرل أداة رائعة لاستخراج البيانات والبرمجة.
كما سترى أدناه ، يمكن استخدام Perl لإعادة تنسيق مجموعة من النصوص. إذا نظرت إلى الجزء الأول من النص ثم الجزء الأخير في أسفل الصفحة ، يمكنك أن ترى أن الشفرة في المنتصف هي ما يحول المجموعة الأولى إلى الثانية.
كيفية تحليل الملفات النصية
كمثال ، دعنا نبني برنامجًا صغيرًا يفتح ملف بيانات مفصولًا بعلامة تبويب ، ويوزع الأعمدة إلى شيء يمكننا استخدامه.
لنفترض ، كمثال ، أن مديرك يسلم لك ملفًا يحتوي على قائمة بالأسماء ورسائل البريد الإلكتروني وأرقام الهواتف ، ويريد منك أن تقرأ الملف ونفعل شيئًا مع المعلومات ، مثل وضعه في قاعدة بيانات أو طباعته بتنسيق جيد نقل.
أعمدة الملف مفصولة بحرف TAB وستبدو كالتالي:
إليك القائمة الكاملة التي سنعمل معها:
#! / usr / bin / perl
فتح (FILE، 'data.txt') ؛
في حين () {
كومب.
($ name ، $ email ، $ phone) = انقسام ("\ t") ؛
طباعة "الاسم: $ name \ n" ؛
طباعة "البريد الإلكتروني: $ email \ n" ؛
طباعة "هاتف: $ phone \ n" ؛
طباعة "\ n" ؛
}
إغلاق الملف)؛
خروج؛
ملحوظة: هذا يسحب بعض التعليمات البرمجية من البرنامج التعليمي على كيفية قراءة وكتابة الملفات في بيرل.
ما يفعله أولا مفتوح ملف تسمى data.txt (التي يجب أن تكون موجودة في نفس الدليل مثل البرنامج النصي Perl). ثم يقرأ الملف في المتغير catchall $ _ سطرا بسطر. في هذه الحالة ، يكون $ _ هو ضمني ولا يتم استخدامه فعليًا في الرمز.
بعد القراءة في سطر ، أي مسافة بيضاء مرتجف من نهايته. ثم ، يتم استخدام وظيفة الانقسام لكسر الخط على حرف علامة التبويب. في هذه الحالة ، يتم تمثيل علامة التبويب بواسطة الرمز \ t. على يسار علامة الانقسام ، سترى أنني أقوم بتعيين مجموعة من ثلاثة متغيرات مختلفة. هذه تمثل واحد لكل عمود من الخط.
أخيرًا ، تتم طباعة كل متغير تم فصله عن سطر الملف بشكل منفصل بحيث يمكنك معرفة كيفية الوصول إلى بيانات كل عمود على حدة.
يجب أن يظهر إخراج البرنامج النصي على النحو التالي:
الاسم: لاري
البريد الإلكتروني: [email protected]
الهاتف: 111-1111
الاسم: مجعد
البريد الإلكتروني: [email protected]
الهاتف: 222-2222
الاسم Moe
البريد الإلكتروني: [email protected]
الهاتف: 333-3333
على الرغم من أننا في هذا المثال نقوم فقط بطباعة البيانات ، إلا أنه سيكون من السهل للغاية تخزين تلك المعلومات نفسها التي تم تحليلها من ملف TSV أو CSV ، في قاعدة بيانات كاملة.