perl6的stat函数

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"(...).

  • 我相信这是我正在寻找但却不知道的.非常感谢您花时间为我提供这些信息.您对如何知道函数提供哪些方法的解释最有帮助.我现在可以轻松查看函数提供的方法列表.在命令行上试了一下它的精彩.谢谢raiph. (5认同)