不幸的是,这不起作用:
my $input = "this is a test";
open(my $fh, "<", \$input);
my $n = sysread($fh, $buf, 4); # want $n == 4, $buf eq 'this'
Run Code Online (Sandbox Code Playgroud)
sysread用read预期的方式替换作品.
这是预期的吗?可以上班吗?我错过了什么吗?
我确信这很简单,但我还没弄明白......
我已经安装sbt-launch.jar了一个shell脚本来执行它(命名sbt).
如何将多个项目放在同一目录中?
当我运行sbt目录project并target创建并填充时,当前项目是default-XXXXX.该compile命令获取顶级目录中的源文件和顶级"lib"目录中的jar文件.
如何在同一目录下添加其他项目?每次我sbt在一个空目录中运行它都会创建一个20+ MB的project目录.
注1:当我跑步时sbt我没有被问到"创建新项目?" 或任何其他问题.
注2:我使用的是这个网址的sbt-launch.jar:http://typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-tools.sbt/sbt-launch/0.10.1/sbt-launch .罐
我按照以下说明操作:http://code.google.com/p/simple-build-tool/wiki/Setup
我一直在玩这个代码:
package Foo;
use Moose;
package main;
my $PACKAGE = "Foo";
{
no strict 'refs';
my $has = *{"${PACKAGE}::has"}{CODE};
my $with = *{"${PACKAGE}::with"}{CODE};
# Add a instance member to class $PACKAGE
$has->("bar", is => "rw", required => 1);
# Add a role to class $PACKAGE
$with->("some::role");
}
# Create an instance of $PACKAGE:
$PACKAGE->new(); # error: attribute 'bar' is required means we were successful
Run Code Online (Sandbox Code Playgroud)
这允许我在运行时创建Moose类,即将实例成员添加到类,添加角色等.
我的问题是:如何将Moose导入包中$PACKAGE?
我知道我可以用eval做到这一点:eval "package $PACKAGE; use Moose";但我想知道是否有解决方案Moose->import(... $PACKAGE ...).
即,一种不使用的方式 …
鉴于这种:
data Foo = Bar { name :: String } | Baz { nickname :: String }
Run Code Online (Sandbox Code Playgroud)
两者的功能name和nickname似乎是类型Foo -> String:
:t name
name :: Foo -> String
:t nickname
nickname :: Foo -> String
Run Code Online (Sandbox Code Playgroud)
但是,定义不完整,因为以下两个表达式都会引发模式匹配错误:
name $ Baz { nickname = "Bob" }
nickname $ Bar { name = "Fred" }
Run Code Online (Sandbox Code Playgroud)
是否有可能完成的定义name和nickname,像IE的东西:
name Baz { nickname = n } = ...
nickname Bar { name = n } = ... …Run Code Online (Sandbox Code Playgroud) 我已经通过 /opt 中的端口安装了 PCRE 库。
我正在尝试安装 PCRE-Light,但cabal install pcre-light报告:
Resolving dependencies...
Configuring pcre-light-0.4...
Preprocessing library pcre-light-0.4...
Base.hsc:103:18: error: pcre.h: No such file or directory
...
Run Code Online (Sandbox Code Playgroud)
pcre.h 位于/opt/local/include
更新:我在链接 macports 提供的 PCRE 库时遇到问题,所以我转而使用 Home Brew。
我有一个 python cron 作业,它对我在笔记本电脑上运行的日历执行操作。
我目前正在为 python 脚本使用“本机应用程序的客户端 ID”。
授权 client_secrets.json 凭证在台式机或笔记本电脑上不是问题,因为我有一个运行 javascript 的完整 GUI 浏览器。但是,如果我将它移动到另一台服务器,在我的笔记本电脑上运行的 client_secrets.json 文件似乎不起作用。
我想将 python cron 作业移动到云服务器。我的问题是:
在本页面:
http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours/Parsing
它显示了ghc被称为:
ghc -package parsec -o simple_parser [../code/listing3.4.hs listing3.4.hs]
Run Code Online (Sandbox Code Playgroud)
方括号是什么?我在使用ghc 7.0.4时遇到错误.这是为某种方式指定输入文件的搜索路径吗?
我有这个单形代码:
import Data.Array.MArray
import Data.Array.IO (IOUArray)
import Data.Ix (Ix)
push :: IOUArray Int Int -> Int -> [Int] -> IO Int
push stack top [] = return top
push stack top (k:ks) = do
v <- readArray stack k
if v >= 0 then push stack top ks
else do writeArray stack k top
push stack k ks
Run Code Online (Sandbox Code Playgroud)
一个完全多态的签名push是:
push :: (MArray a e m, Ix e, Num e) => a e e -> e -> [e] -> …Run Code Online (Sandbox Code Playgroud) bracket
:: IO a -- ^ computation to run first (\"acquire resource\")
-> (a -> IO b) -- ^ computation to run last (\"release resource\")
-> (a -> IO c) -- ^ computation to run in-between
-> IO c -- returns the value from the in-between computation
bracket before after thing =
mask $ \restore -> do
a <- before
r <- restore (thing a) `onException` after a
_ <- after a
return r
Run Code Online (Sandbox Code Playgroud)
这与某些API设计模式或约定有关吗?为什么不使用以下部分签名?
-> (a -> IO ()) …Run Code Online (Sandbox Code Playgroud)