ملف العمليات بيرل
يستخدم بيرل تقنية تسمى مقبض ملف متغير لتشغيل النوع من الملفات.
قراءة أو كتابة البيانات من ملف يتطلب استخدام مؤشرات الملفات.
التعامل مع ملف (مقبض الملف) هو اسم من توصيلات I / O.
يوفر بيرل ثلاثة مؤشرات الملفات: STDIN، STDOUT، STDERR، وهو ما يمثل الإدخال القياسي، الإخراج القياسي والإخراج الخطأ المعياري.
يمكن فتح ملفات بيرل في الطرق التالية:
open FILEHANDLE, EXPR open FILEHANDLE sysopen FILEHANDLE, FILENAME, MODE, PERMS sysopen FILEHANDLE, FILENAME, MODE
المعلمة الوصف:
- FILEHANDLE: مؤشرات الملفات، وتستخدم لتخزين معرف فريد للملف.
- EXPR: اسم الملف ونوع الوصول إلى الملفات التي تتكون من التعبير.
- MODE: ملف نوع الوصول.
- PERMS: بت الوصول (بت إذن).
وظيفة مفتوحة
علينا استخدام وظيفة البرمجية التالية لفتح وضع للقراءة فقط (<) لفتح ملف file.txt:
open(DATA, "<file.txt");
<للقراءة فقط التمثيل.
يستخدم كود التعامل مع ملف البيانات لقراءة الملف، والمثال التالي سيتم فتح الملف ومحتويات ملف الإخراج:
#!/usr/bin/perl open(DATA, "<file.txt") or die "file.txt 文件无法打开, $!"; while(<DATA>){ print "$_"; }
التعليمات البرمجية التالية لكتابة (>) وسيلة لفتح ملف file.txt:
open(DATA, ">file.txt") or die "file.txt 文件无法打开, $!";
> للوضع الكتابة.
إذا كنت بحاجة إلى فتح الملف في وضع للقراءة والكتابة، أمام> أو <حرف + علامة لإضافة:
open(DATA, "+<file.txt"); or die "file.txt 文件无法打开, $!";
هذا النهج لا يؤدي إلى حذف محتوى الملف الأصلي، إذا كنت ترغب في حذف الشكل التالي:
open DATA, "+>file.txt" or die "file.txt 文件无法打开, $!";
إذا كنت ترغب في تقديم بيانات إضافية، وبيانات إضافية قبل، وتحتاج فقط لفتح الملف في وضع إلحاق:
open(DATA,">>file.txt") || die "file.txt 文件无法打开, $!";
>> يمثل إلحاق البيانات إلى ملف موجود، إذا كنت بحاجة لقراءة محتويات الملف إلى إلحاق لإضافة علامة +:
open(DATA,"+>>file.txt") || die "file.txt 文件无法打开, $!";
يسرد الجدول التالي وسائط وصول مختلفة:
طريقة | وصف |
---|---|
<أو ص | فتح للقراءة فقط مؤشر الملف إلى رأس الملف. |
> أو ث | فتح لكتابة مؤشر الملف إلى رأس ملف وتقليص حجم الملف الى نقطة الصفر. إذا لم يكن الملف موجودا، محاولة خلق. |
>> أو | فتح لكتابة مؤشر الملف في نهاية الملف. إذا لم يكن الملف موجودا، محاولة خلق. |
+ <أو ص + | فتح للقراءة والكتابة، ومؤشر الملف إلى رأس الملف. |
+> أو W + | مفتوحة للقراءة والكتابة، وخفض مؤشر الملف إلى رأس الملف وحجم الملف الى نقطة الصفر. إذا لم يكن الملف موجودا، محاولة خلق. |
>> + أو + | فتح للقراءة والكتابة مؤشر الملف في نهاية الملف. إذا لم يكن الملف موجودا، محاولة خلق. |
وظيفة Sysopen
وظيفةsysopen مشابهة لفتح وظيفة، ولكنها ليست نفس شكل من الحجة.
ويستند المثال التالي على القراءة والكتابة (+ <اسم الملف) وسيلة لفتح الملف:
sysopen(DATA, "file.txt", O_RDWR);
إذا كنت بحاجة إلى تحديث الملفات التي تم تفريغها قبل كتابة الملف على النحو التالي:
sysopen(DATA, "file.txt", O_RDWR|O_TRUNC );
يمكنك استخدام O_CREAT لإنشاء ملف جديد، ووضع O_WRONLY الكتابة فقط، O_RDONLY وضع للقراءة فقط.
وتشير PERMS المعلمات قيمة العقار ثماني أن أذونات الملف بعد خلق، الافتراضي هو 0x666.
يسرد الجدول التالي القيم واسطة ممكنة:
طريقة | وصف |
---|---|
O_RDWR | فتح للقراءة والكتابة، ومؤشر الملف إلى رأس الملف. |
O_RDONLY | فتح للقراءة فقط مؤشر الملف إلى رأس الملف. |
O_WRONLY | فتح لكتابة مؤشر الملف إلى رأس ملف وتقليص حجم الملف الى نقطة الصفر. إذا لم يكن الملف موجودا، محاولة خلق. |
O_CREAT | إنشاء ملف |
O_APPEND | إلحاق الملف |
O_TRUNC | يتم قطع حجم الملف الى نقطة الصفر |
O_EXCL | إذا كنت تستخدم الملف موجود O_CREAT، فإنها ترجع رسالة خطأ، فإنه يمكن اختبار ما إذا كان الملف موجود |
O_NONBLOCK | عدم عرقلة عمليات الإدخال / الإخراج حتى يتسنى لنا إما تنجح أو إرجاع فورا خطأ، لا يتم حظر. |
وثيقة وظيفة
بعد الاستخدام في الملف إغلاق الملف الذي تريد تحديث المدخلات والمخرجات التعامل مع ملف مخازن المرتبطة إغلاق ملف بناء الجملة التالي:
close FILEHANDLE close
FILEHANDLE لمعالجة الملف المحدد، إذا نجحت مغلقة عوائد صحيح.
close(DATA) || die "无法关闭文件";
القراءة والكتابة الملفات
القراءة والكتابة المعلومات إلى ملف هناك عدة طرق مختلفة:
<FILEHANDL> مشغل
الطريقة الرئيسية لقراءة المعلومات من التعامل مع الملف المفتوح هو <FILEHANDLE> المشغل. في سياق مفردة، فإنها ترجع خط واحد من مؤشر الملف. على سبيل المثال:
#!/usr/bin/perl print "本教程网址?\n"; $name = <STDIN>; print "网址:$name\n";
بعد تنفيذ الإجراءات المذكورة أعلاه، فإن المعلومات التالية، ونحن سيدخل الانتاج العبارة الطباعة URL:
عندما نستخدم <FILEHANDLE> المشغل، والتي ترجع مؤشر ملف لكل صف في القائمة، على سبيل المثال، يمكننا استيراد جميع خطوط للمجموعة.
تنفيذ يخلق ملف import.txt، على النحو التالي:
$ cat import.txt 1 2 3
Import.txt وقراءة كل سطر فيlines مجموعة:
#!/usr/bin/perl open(DATA,"<import.txt") or die "无法打开数据"; @lines = <DATA>; print @lines; # 输出数组内容 close(DATA);
البرنامج المذكور أعلاه، والناتج هو:
1 2 3
وظيفة getc
ترجع xgetc حرف واحد من FILEHANDLE محدد، إذا لم تقم بتحديد STDIN عودة:
getc FILEHANDLE getc
في حالة حدوث خطأ، أو التعامل مع الملف في نهاية الملف، فإنها ترجع نديف.
قراءة وظيفة
يستخدم قراءة وظيفة للتعامل مع المعلومات القراءة من المخزن المؤقت الملف.
يتم استخدام هذه الدالة لقراءة البيانات الثنائية من ملف.
read FILEHANDLE, SCALAR, LENGTH, OFFSET read FILEHANDLE, SCALAR, LENGTH
المعلمة الوصف:
- FILEHANDLE: مؤشرات الملفات، وتستخدم لتخزين معرف فريد للملف.
- عددي: بدء قراءة الموقف.
- الطول: طول محتوى القراءة.
- إزاحة: الإزاحة.
إذا عودة ناجحة لقراءة عدد البايتات قراءة، بإرجاع 0 إذا كانت نهاية الملف، في حالة حدوث خطأ العودة ونديف.
وظيفة الطباعة
لقراءة جميع المعلومات من وظائف معالجة الملف في نهاية الجزء الخلفي من وظيفتها الرئيسية هي كتابة الطباعة:
print FILEHANDLE LIST print LIST print
استخدام ملف ويمكن ظائف الطباعة التعامل مع نتائج تشغيل لأجهزة الإخراج (STDOUT: خرج قياسي)، على سبيل المثال:
print "Hello World!\n";
نسخ الملف
المثال التالي سنقوم بفتح file1.txt ملف موجود، ويقرأها كل سطر مكتوب إلى file2.txt ملف في:
#!/usr/bin/perl # 只读方式打开文件 open(DATA1, "<file1.txt"); # 打开新文件并写入 open(DATA2, ">file2.txt"); # 拷贝数据 while(<DATA1>) { print DATA2 $_; } close( DATA1 ); close( DATA2 );
إعادة تسمية الملف
الأمثلة التالية، سنقوم ملف موجود بالفعل file1.txt إعادة تسمية file2.txt، الدليل المحدد في / البيرة / w3big / اختبار / تحت:
#!/usr/bin/perl rename ("/usr/w3big/test/file1.txt", "/usr/w3big/test/file2.txt" );
إعادة تسمية وظيفة فقط تقبل معلمتين، إلا أن الملف موجود بالفعل سيتم إعادة تسميته.
حذف الملفات
توضح الأمثلة التالية كيفية استخدام وظيفةلإلغاء الربط لحذف هذا الملف:
#!/usr/bin/perl unlink ("/usr/w3big/test/file1.txt");
تحديد موقع الملف
يمكنك استخدام وظيفةاقول للحصول على موقع الملف، وتحديد موقع داخل الملف باستخدام تسعىوظيفة:
أقول وظيفة
أقول وظيفة يستخدم للحصول على موقع الملف:
tell FILEHANDLE tell
إذا FILEHANDLE ترجع الدالة موقف مؤشر الملف بالبايت. إذا لم تقم بتحديد العودة إلى التعامل مع الملف الافتراضي المحدد.
طلب وظيفة
بحث () يتم استخدام الدالة على التحرك من خلال ملف التعامل مع ملف القراءة والكتابة مؤشرات على طريقة لقراءة أو كتابة ملف بالبايت القراءة والكتابة:
seek FILEHANDLE, POSITION, WHENCE
المعلمة الوصف:
- FILEHANDLE: مؤشرات الملفات، وتستخدم لتخزين معرف فريد للملف.
- الموقف: يشير إلى عدد من وحدات البايت من التعامل مع الملفات (للقراءة والكتابة موقف المؤشر) للتحرك.
- WHENCE: يمثل مؤشر الملف (للقراءة والكتابة المؤشرات الموقع) يبدأ عند نقطة الانطلاق، يمكنك أن تأخذ قيمة 0، 1؛ للدلالة على بداية الملف، والموقف الحالي ونهاية الملف.
الأمثلة التالية لقراءة 256 بايت من بداية الملف:
seek DATA, 256, 0;
معلومات الملف
ملف العمليات بيرل أيضا يمكن اختبار ما إذا كان الملف موجود والقراءة والكتابة.
ما يمكنني إنشاء ملف file1.txt، مثل في ما يلي:
$ cat file1.txt www.w3big.com
#/usr/bin/perl my $file = "/usr/test/w3big/file1.txt"; my (@description, $size); if (-e $file) { push @description, '是一个二进制文件' if (-B _); push @description, '是一个socket(套接字)' if (-S _); push @description, '是一个文本文件' if (-T _); push @description, '是一个特殊块文件' if (-b _); push @description, '是一个特殊字符文件' if (-c _); push @description, '是一个目录' if (-d _); push @description, '文件存在' if (-x _); push @description, (($size = -s _)) ? "$size 字节" : '空'; print "$file 信息:", join(', ',@description),"\n"; }
البرنامج المذكور أعلاه، والناتج هو:
file1.txt 信息:是一个文本文件, 15 字节
ملف مشغلي اختبار في الجدول التالي:
مشغلي | وصف |
---|---|
-A | مرة الأولى الوصول إلى الملف (وحدات: أيام) |
-B | سواء كان ملف ثنائي |
-C | ملف (inode) inode تعديل الوقت (وحدات: أيام) |
-M | الملف كانت آخر مرة عدل (وحدات: أيام) |
-O | جميع الملفات هي رمز المستخدم الحقيقي |
-R | ملف أو دليل يمكن قراءتها من قبل UID الحقيقي / دائرة المخابرات العامة |
-S | المقبس (المقبس) |
-T | هل هو ملف نصي |
-W | ملف أو دليل يمكن كتابتها إلى رمز المستخدم الحقيقي / دائرة المخابرات العامة |
-X | الملفات أو الدلائل التي يمكن تشغيلها UID الحقيقي / دائرة المخابرات العامة |
-b | ملف كتلة خاص (كتلة خاص) (مثل القرص جبل) |
-c | على حرف خاص (أحرف خاصة) ملف (مثل أجهزة I / O) |
-d | دليل |
-e | ملف أو وجود اسم الدليل |
-f | ملف عادي |
-g | ملف أو دليل لديه سمة setgid |
-k | ملف أو دليل لديه قليلا لزجة |
-l | هو ارتباط رمزي |
-o | جميع الملفات UID صحيح |
-p | الملف هو إخراج مسمى (FIFO) |
-r | يمكن أن تكون الملفات بشكل فعال UID / دائرة المخابرات العامة قراءة |
-s | ملف أو دليل موجود وليس 0 (إرجاع عدد بايت) |
-t | التعامل مع الملف TTY (نظام وظيفة isatty () بإرجاع نتيجة، واسم الملف لا يمكن استخدام هذا الاختبار) |
-u | ملف أو دليل لديه سمة setuid |
-w | يمكن كتابة الملفات إلى UID صالح / دائرة المخابرات العامة |
-x | يمكن تنفيذ الملفات بشكل فعال UID / دائرة المخابرات العامة |
-z | الملف موجود، وحجم 0 (دليل ثابت غير صحيح)، وهذا هو، ما إذا كان الملف فارغ، |