我想编写一段代码,按行读取文件并存储每行的输入数据,但要限制每行的长度。我希望防止最终用户恶意输入超过1GB的数据导致内存溢出,同时也要防止读入异常大的文件。使用
在PHP中,可以使用fgets函数指定要读取的字节数,并将一行分割成多个小块。请问Perl中是否有类似的方法?我看到了
这个练习的目标是在读取数据后避免进行额外的解析/缓冲操作。fgets在读取N个字节或遇到换行符时停止读取。
编辑:我想读取X行,每行最长为Y。我不想读取超过Z个字节的数据,也不想一次性读取所有Z个字节。我猜可以这样做并拆分行,但想知道是否还有其他方法。如果这是最好的方法,那么使用read函数并进行手动解析是最简单的选择。
谢谢。
$str = <FILE>
仍然会读取整行,这可能非常长并导致内存溢出。在PHP中,可以使用fgets函数指定要读取的字节数,并将一行分割成多个小块。请问Perl中是否有类似的方法?我看到了
sv_gets
,但不确定如何使用(虽然我只是进行了简单的谷歌搜索)。这个练习的目标是在读取数据后避免进行额外的解析/缓冲操作。fgets在读取N个字节或遇到换行符时停止读取。
编辑:我想读取X行,每行最长为Y。我不想读取超过Z个字节的数据,也不想一次性读取所有Z个字节。我猜可以这样做并拆分行,但想知道是否还有其他方法。如果这是最好的方法,那么使用read函数并进行手动解析是最简单的选择。
谢谢。