给出html表格......
  <form id="mainform" action="/upload" enctype="multipart/form-data" method="post">
        <div>
            <input type="file" name="img"/>
        </div>
        <div>
            <input type="submit" value="Send">
        </div>
    </form>
......和处理程序......
class Picture(db.Model):
  image = db.BlobProperty()
class Submission(webapp.RequestHandler):
    def post(self):
        picture = Picture()
        image = self.request.get("img")
        picture.image = db.Blob(image)
        picture.put()
        self.redirect('/')
...在处理程序中是否有任何方法可以获取用户为上传输入的文件名?在PHP中,我可以引用$ _FILES ['img'] ['name'],但是我没有看到什么语法(如果有的话)可以用于request.get.在另一个问题中,另一个作者在他的html页面中使用一个javascript例程来提取每次OnChange事件发生时用户选择的文件名,然后在隐藏字段中单独传递它.这有必要吗?PHP似乎免费获取文件名.
给定一个程序实用程序从stdin获取命令并返回一个有用的退出代码,这个perl语法有效:
my $result = `utility -switch1 -switch2 <<HERE
set ridin_round_the_world TRUE;
do this;
sign that;
try { 
   make some_girl; 
   return 0;
} 
except { 
   sleep --week;  
   exit 1;
}
HERE`;
print "result is $result\n";
所谓"作品",我指的是perl脚本启动该实用程序,管道在命令列表,等到实用程序退出,并返回结果.
但为什么它有效呢?反引号如何知道调用程序,然后在HERE文档中输入管道?我对perl实现感到幸运,还是这种标准行为?
一旦从函数返回控件,变量占用的空间是否会被释放?
我以为它被解除了分配.
在这里,我编写了一个函数,即使在从函数CoinDenom返回数组的本地引用之后也能正常工作,使用它来打印命名总和所需的最小硬币数的结果.如果空间被解除分配,它如何能够打印出正确的答案?
int* CoinDenom(int CoinVal[],int NumCoins,int Sum) {
  int min[Sum+1];
  int i,j;
  min[0]=0;
  for(i=1;i<=Sum;i++) {
    min[i]=INT_MAX;
  }
  for(i=1;i<=Sum;i++) { 
    for(j=0;j< NumCoins;j++) {
      if(CoinVal[j]<=i && min[i-CoinVal[j]]+1<min[i]) {
        min[i]=min[i-CoinVal[j]]+1;
      }
    }
  }
  return min; //returning address of a local array
}
int main() {
  int Coins[50],Num,Sum,*min;
  cout<<"Enter Sum:";
  cin>>Sum;
  cout<<"Enter Number of coins :";
  cin>>Num;
  cout<<"Enter Values";
  for(int i=0;i<Num;i++) {
    cin>>Coins[i];
  }
  min=CoinDenom(Coins,Num,Sum);
  cout<<"Min Coins required are:"<< min[Sum];
  return 0;
}
Perl允许......
$a = "fee";
$result = 1 + f($a) ; # invokes f with the argument $a
但不允许,或者说不做我想做的事......
s/((fee)|(fie)|(foe)|(foo))/f($1)/ ; # does not invoke f with the argument $1
期望的最终结果是实现正则表达式匹配的替换的一种方式.
我必须写
sub lala {
  my $haha = shift;
  return $haha . $haha;
}
my $a = "the giant says foe" ;
$a =~ m/((fee)|(fie)|(foe)|(foo))/;
my $result = lala($1);
$a =~ s/$1/$result/;
print "$a\n";
我希望@list包含$ root_dir中匹配*YYYYMMDD*的所有文件名,其中YYYYMMDD是25小时前.
我试试......
my ($y, $m, $d) = (localtime(time - 25 * 60 * 60))[5,4,3]; 
my $pattern = sprintf('*%4d%02d%02d*',$y+1900,$m+1,$d);
print "The pattern is $pattern\n"; 
my @files = <$pattern>;
foreach (@files) {
    print "$_\n";
}
...但是我没有获取文件列表,而是在未打开的文件句柄上获得readline().
我知道<>运算符可以解释变量,因此<$ y $ m $ d>将在一年中最后三个月的三分之二天内工作,因为那些将是有两位数的月和日,但是不稳健.
我必须写...
$m = sprintf('%02d',$m+1);  
$d = sprintf('%02d',$d+1);
my @files = <*$y$m$d*>;
......还是有更简洁的东西?就像是 ...
# invalid code unless you want to produce the string "readline() on unopened filehandle" for some reason
my @files = …