Tôi có một ứng dụng Perl rằng phải mất từ dòng lệnh một đầu vào như:Làm cách nào để mở rộng chuỗi như "1..15,16" vào danh sách các số?
application --fields 1-6,8
Tôi cần thiết để hiển thị các lĩnh vực theo yêu cầu của người dùng trên dòng lệnh.
Tôi đã nghĩ đến việc thay thế '-' bằng '..' để tôi có thể lưu trữ chúng trong mảng, ví dụ:
$str = "1..15,16" ;
@arr2 = ($str) ;
@arr = (1..15,16) ;
print "@arr\n" ;
print "@arr2\n" ;
Vấn đề ở đây là @arr hoạt động tốt (vì nó phải) nhưng trong @ arr2 toàn bộ chuỗi không được mở rộng thành phần tử mảng.
Tôi đã thử sử dụng chuỗi thoát nhưng không may mắn.
Có thể thực hiện theo cách này không?
+1. "Làm đúng" luôn luôn là thích hợp hơn để đánh giá. Nhiều tác dụng phụ ít hơn. – jrockway
Tôi chưa từng gặp số :: Phạm vi trước đó. Tôi đã gửi nó đi để sử dụng trong tương lai. Cảm ơn vì đã làm cho tôi biết về nó! –
Nếu bạn nhập dữ liệu của người dùng, ứng dụng của bạn sẽ tăng lên trên 1..1000000000, trừ khi bạn có khoảng 8GB RAM. Number :: Range-> size() là vô ích ngay bây giờ để ngăn chặn điều này vì nó tạo ra toàn bộ phạm vi để tìm ra kích thước. –