Standard Input <STDIN>

Một phần của tài liệu Hướng dẫn lập trình Perl cơ bản docx (Trang 32 - 33)

Đây là một handle chuẩn được định nghĩa sẵn trong perl dùng để nhận thông tin input từ người dùng.

Ví dụ lấy input từ người dùng và in ra giá trị nhập vào:

-SCRIPT-

#! /usr/bin/perl -w use strict;

# lấy input từ user my $input = <STDIN>; # in ra kết quả

print "Bạn nhập vào: " . $input;

-/SCRIPT-

Biến $input được định nghĩa hay khởi tạo qua giá trị mà người dùng nhập vào. Sau đó, bạn chỉ cần in ra kết quả, hay giá trị của biến $input.

Nếu để ý kĩ hơn bạn sẽ thấy kết quả sẽ có xuống dòng <new line> ở dòng cuối cùng, trong khi bạn không hề thêm kí từ <\n>. Lý do tại sao nhỉ? Câu trả lời rất đơn giẩn: đó là vì trong input của người dùng phải xác nhận bằng phím [Enter] để xác nhận input. Vì thế, $input sẽ chứa luôn cả kí tự <\n> thành ra khi bạn in ra $input sẽ tự khắc xuống dòng.

Để tránh điều này bạn có thể sử dụng 1 trong 2 hàm sau để cắt bỏ kí tự thừa trong input của user.  chomp($string) : sẽ kiểm tra kí tự cuối cùng của chuỗi, nếu là kí tự <\n> thì sẽ xóa nó đi khỏi

chuỗi, nếu không phải <\n> thì không làm gì cả.

chop($string) : sẽ xóa đi kí tự cuối cùng của chuỗi, bất kể là kí tự gì đều sẽ bị xóa. Vậy nếu như người dùng nhập vào là một giá trị số và muốn sử dụng giá trị số thì làm sao?

Thực tế, trong perl tất cả các dữ liệu nhập vào từ bàn phím đều ở dạng chuỗi, nếu người dùng nhập vào giá trị số và muốn sử dụng nó như một con số thì bạn chỉ việc áp dụng biến đó với các toán tử toán học (+ - * / ++ …) thì lập tức biến sẽ được chuyển sang dạng số. Khi đã chuyển sang dạng số thì kí tự <\n> khi input sẽ không còn tồn tại nữa.

-SCRIPT-

#! /usr/bin/perl -w use strict;

print "Hãy nhập vào một số bất kì: "; # lấy một số từ user

$number **= 2; # toán tử lũy thừa viết rút gọn print "Giá trị bình phương là: ", $number,"\n";

-/SCRIPT-

Một phần của tài liệu Hướng dẫn lập trình Perl cơ bản docx (Trang 32 - 33)