Use*_*d82 9 stat perl6 file-attributes
在perl6中是否有另一种方法来获取文件属性详细信息,如size,access_time,modified_time等,而无需调用本机调用?
根据文档,它" 不太可能像POSIX特定的那样被内置实现 ".
除了系统调用stat之外,还有哪些可用的解决方法?
任何想法或指针都非常感激.
谢谢.
rai*_*iph 11
请参阅IO :: Path文档.
例如:
say 'foo'.IO.s; # 3 if 'foo' is an existing file of size 3 bytes
Run Code Online (Sandbox Code Playgroud)
.IO在字符串上创建IO::Path对应于与字符串给出的路径对应的文件系统条目的对象.
请参阅使用联结以在doc上ACCEPTS同时获取多个属性的示例.
我不确定以下内容是否过多.如果是,请忽略它.希望它有用.
您可以通过其HOW对象(也就是高阶工作对象,如何对象工作对象,元对象 - 无论您想要什么称呼它们)发现/探索Perl 6中可用的一些内容,这些对象知道特定类型的HOW对象是如何工作的.
say IO::Path.^methods
Run Code Online (Sandbox Code Playgroud)
显示:
(BUILD new is-absolute is-relative parts volume dirname basename extension
Numeric sibling succ pred open watch absolute relative cleanup resolve
parent child add chdir rename copy move chmod unlink symlink link mkdir
rmdir dir slurp spurt lines comb split words e d f s l r w rw x rwx z
modified accessed changed mode ACCEPTS Str gist perl IO SPEC CWD path BUILDALL)
Run Code Online (Sandbox Code Playgroud)
这些是IO::Path对象上可用的一些方法.
(你可以或多或少地使用副词,例如say IO::Path.^methods(:all),但默认显示旨在为你提供你可能最感兴趣的那些.向上箭头(^)表示方法call(.methods)不会发送给调用者而是被发送"向上",直到它的HOW对象,如上所述.)
以下是一次应用其中一些的示例:
spurt 'foo', 'bar'; # write a three letter string to a file called 'foo'.
for <e d f s l r w rw x rwx z modified accessed changed mode>
-> $method { say 'foo'.IO."$method"() }
Run Code Online (Sandbox Code Playgroud)
第二行for对<...>构造中其字符串名称列出的方法进行循环.要在变量上调用一个方法,并在变量中给出它的名称$qux,请写入."$qux"(...).