Latest web development tutorials

ملف العمليات بيرل

يستخدم بيرل تقنية تسمى مقبض ملف متغير لتشغيل النوع من الملفات.

قراءة أو كتابة البيانات من ملف يتطلب استخدام مؤشرات الملفات.

التعامل مع ملف (مقبض الملف) هو اسم من توصيلات 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 (دليل ثابت غير صحيح)، وهذا هو، ما إذا كان الملف فارغ،