Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vinascript/html/wp-includes/functions.php on line 6114
Mở, đọc, sửa và xóa file và thư mục trong Perl - VinaScript

Latest Post

Triển khai dự án PHP, Mysql với Nginx trên Docker Tìm hiểu về HTML – Ưu điểm, nhược điểm và cách hoạt động của HTML

Trong chuỗi bài về lập trình bằng Perl, chúng tôi sẽ giới thiệu hướng dẫn sử dụng Perl 5 để thực hiện các thao tác cơ bản trên các tệp văn bản, bao gồm mở, đọc, sửa và xóa tệp.

1. Thao tác với file

Sử dụng function open trong Perl để mở file

– Syntax: open(filehandlemodefilename)
– Mode:

mode operand
read <
write >
append >>

1.1. Mở một file text

Đoạn code để mở file text có tên là sample.txt

use strict;
use warnings;
 
my $filename = 'sample.txt';
my $fh;
if (open($fh, '<', $filename)) {
  print "File ${filename} opened successfully!n";
} else {
  warn "Could not open file '${filename}', Error: $!n";
}
close($fh);

1.2. Mở file text và đọc nội dung một file text

Đoạn code mở file sample.txt và đọc nội dung theo từng line và in ra màn hình

my $filename = 'sample.txt';
my $fh;
if (open($fh, '<', $filename)) {
    while (my $row = <$fh>) {
        chomp $row;
        print "$rown";
    }
} else {
    warn "Could not open file '${filename}', Error: $!n";
}
close($fh);

1.3. Tạo và ghi nội dung vào một file text

Ở trường hợp này

  • Nếu file chưa tồn tại => Tạo file text có nội dung là ‘We are vinasupport.com’
  • Nếu file đã tồn tại => Viêt đè nội dung ‘We are vinasupport.com’ lên file cũ.
my $filename = 'sample.txt';
my $fh;
if (open($fh, '>', $filename)) {
    print $fh 'we are vinasupport.com';
} else {
    warn "Could not create file '${filename}', Error: $!n";
}
close($fh);

1.4. Tạo hoặc chèn nội dung vào một file text đã tồn tại

Ở trường hợp này

  • Nếu file chưa tồn tại => Tạo file text có nội dung là ‘We are vinasupport.com’
  • Nếu file đã tồn tại => Thêm đoạn text ‘We are vinasupport.com’ ở bên dưới nội dung file cũ.
my $filename = 'sample.txt';
my $fh;
if (open($fh, '>>', $filename)) {
    print $fh "we are vinasupport.comn";
} else {
    warn "Could not create file '${filename}', Error: $!n";
}
close($fh);

1.5. Sao chép hoặc đổi tên file

– Sao chép (Copy) file

use File::Copy qw(copy);

my $file_from = 'sample.txt';
my $file_to = 'new_sample.txt';

copy $file_from, $file_to;

– Đổi tên (Rename) file

use File::Copy qw(move);

my $old_file = 'sample.txt';
my $new_file = 'new_sample.txt';

move $old_file, $new_file;

Hoặc đơn giản sử dụng hàm rename built-in sẵn của Perl

rename $old_file, $new_file;

1.6. Xóa file

Sử dụng hàm unlink built-in sẵn của Perl

my $file = 'sample.txt';

unlink $file or die "Could not remove file '${file}'. Error: $!";

2. Thao tác với thư mục

2.1. Tạo thư mục

Sử dụng function mkdir (directory, mask)

my $newDir = 'myFolder';

mkdir($newDir, 0755) or die "Could not create the directory '${newDir}'. Error: $!";

2.2. Tạo thư mục với thư mục con trong nó

Ở trường hợp 2.1 ta chỉ có thể tạo được 1 thư mục, muốn tạo thư mục với thư mục con ở bên trong, tham khảo đoạn code Perl sau

use File::Path 'mkpath';

my $newPath = 'vinasupport.com/Linux/Ubuntu';
my $verbose = 1;
my $mode = 0755;

mkpath($newPath, $verbose, $mode) or die "Could not create the directory '${newPath}'. Error: $!";

Kết quả ta được cấu trúc đường dẫn như sau:

2.3. Xóa thư mục, thư mục con và file trong nó

use File::Path 'rmtree';

my $path = 'vinasupport.com';
my $verbose = 1;
my $safe = 1;

rmtree ($path, $verbose, $safe ) or die "Could not delete the directory '${path}'. Error: $!";

2.4. Liệt kê file trong thư mục

Đoạn code sau sẽ hiển thị danh sách file trong 1 thư mục sử dụng function opendir của Perl

my $dir = '/tmp';

opendir(DIR, $dir) or die $!;

while (my $file = readdir(DIR)) {

    # Use a regular expression to ignore files beginning with a period
    next if ($file =~ m/^./);
    print "$filen";
}

closedir(DIR);

Cám ơn các bạn đã theo dõi bài viết

Nguồn vinasupport.com

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *